如何制作层次结构列表python

时间:2015-02-26 20:25:37

标签: python list hierarchy

我试图在python中创建层次结构列表python。例如,有几个州。在每个州都有几个县,每个县都有几个城市。然后我希望能够打电话给那些人。 我已经尝试过创建列表并将列表附加到这些列表中,但我无法实现这一点。它也变得非常混乱。感谢

我刚刚找到了这个例子:

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

现在我的问题就是,这是最好的方法吗?怎么称呼具体的东西?如果我用......

print tree[0]
它会给我一切。当我尝试

print tree[0[1]]

我得到一个TypeError类型:' int"对象没有属性' __ getitem _' 感谢

2 个答案:

答案 0 :(得分:1)

您问题的直接答案是列表可能已正确创建,但您无法正确访问它。

您可以像这样访问嵌套列表:

tree[0][1]...

不喜欢这个

tree[0[1[..]]]

但是,您应该使用字典而不是列表。它将使您的查找更加简单,并且它们也将更加高效。

如果您有兴趣了解字典的工作原理。谷歌的术语“联想阵列”#。它们也称为哈希或哈希表。

此外,不是使用术语层次,而是术语多维更常见。

e.g。这样:

mylist=[
        [...],
        [...],
        .
        . 
       ]

是2D列表

答案 1 :(得分:1)

字典是要走的路。

d = {'food': 
        {'fruit':
            {'color':
                {'red': ['Cherry', 'Strawberry']},
                {'yellow': ['Banana']},
            },
        },
        {'meat': ['Beef', 'Pork']}
    }

现在你可以做到:

for item in d['food']['fruit']['color']['red']:
    print(item)
# Cherry
# Strawberry