【问题标题】:Convert flat data into a hierarchical python list将平面数据转换为分层 python 列表
【发布时间】:2010-12-16 22:35:54
【问题描述】:

我的数据库中有一个数据模型。这是一个按左值排序的平面 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"]
           ]
   ],
]

【问题讨论】:

  • 请给出一个自洽的输入和输出示例——您的示例输出有一个“pygame”条目,在您的示例输入中nowhere,任何程序怎么可能使起来了?!
  • 你说的“按左值排序”,好像不是,最左边的列(id)也不是,反正行之间的关系是怎么表示的,不然没办法构造嵌套列表

标签: python hierarchical


【解决方案1】:

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

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

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

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']
             ]],
        ]],
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-26
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多