将平面数据转换为分层的 Python 列表

发布于 2024-08-11 09:47:31 字数 647 浏览 7 评论 0原文

我的数据库中有一个数据模型。这是一个按左值排序的平面 Python 列表。

>     id    name        left    right
>     1 Beginning   1   6
>     2 FOO     2   5
>     3 BAR     3   4
>     4 Programming 6   13
>     5 Python      7   8
>     7 C#      9   12
>     8 XNA     10  11
>     6 About       14  15

我想将其计算为一个分层的 python 列表,然后将其转换为 HTML/XML 作为无序列表。 python 列表是列表中的列表。

例子

categories = [
   ["programming", [
                      ["Python", ["pygame"]],
                      ["C#", ["XNA"]],
                   ]
   ],
   ["FOO", [
               ["BAR"]
           ]
   ],
]

I have a data model from my database. This is a flat python list sorted by left values.

>     id    name        left    right
>     1 Beginning   1   6
>     2 FOO     2   5
>     3 BAR     3   4
>     4 Programming 6   13
>     5 Python      7   8
>     7 C#      9   12
>     8 XNA     10  11
>     6 About       14  15

I would like to compute this into a hierarchical python list, that in turn will be converted to HTML/XML as a unordered list. The python list with be a lists within lists.

Example

categories = [
   ["programming", [
                      ["Python", ["pygame"]],
                      ["C#", ["XNA"]],
                   ]
   ],
   ["FOO", [
               ["BAR"]
           ]
   ],
]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空‖城人不在 2024-08-18 09:47:31

这是修改后的前序树遍历。

http://www.sitepoint.com/print/hierarchical-data-database/< /a>

所以输入看起来像这样,一个字典列表。

dbrows = [
   {'title': 'Food', 'lft': 1, 'rgt': 18},
   {'title': 'Fruit', 'lft': 2, 'rgt': 11},
   #etc... etc... from the linked article.
]

使用链接文章中的水果输入。这就是我想要的,按 python 列表排序。

tree = [
        ['Food', [
             ['Fruit', [
                   ['Red', ['Cherry', 'Strawberry']],
                   ['Yellow', ['Banana']],
             ]],
             ['Meat', [
                   ['Beef', 'Pork']
             ]],
        ]],
]

This is a modified pre-order tree traversal.

http://www.sitepoint.com/print/hierarchical-data-database/

So the input looks like this, a list of dictionaries.

dbrows = [
   {'title': 'Food', 'lft': 1, 'rgt': 18},
   {'title': 'Fruit', 'lft': 2, 'rgt': 11},
   #etc... etc... from the linked article.
]

Using the fruit input from the linked article. This is what I want, sorted as a python list.

tree = [
        ['Food', [
             ['Fruit', [
                   ['Red', ['Cherry', 'Strawberry']],
                   ['Yellow', ['Banana']],
             ]],
             ['Meat', [
                   ['Beef', 'Pork']
             ]],
        ]],
]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文