我试图在python中创建层次结构列表python。例如,有几个州。在每个州都有几个县,每个县都有几个城市。然后我希望能够打电话给那些人。 我已经尝试过创建列表并将列表附加到这些列表中,但我无法实现这一点。它也变得非常混乱。感谢
我刚刚找到了这个例子:
tree = [
['Food', [
['Fruit', [
['Red', ['Cherry', 'Strawberry']],
['Yellow', ['Banana']],
]],
['Meat', [
['Beef', 'Pork']
]],
]],
]
现在我的问题就是,这是最好的方法吗?怎么称呼具体的东西?如果我用......
print tree[0]
它会给我一切。当我尝试
print tree[0[1]]
我得到一个TypeError类型:' int"对象没有属性' __ getitem _' 感谢
答案 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