[英]Iterating over dictionary containing array objects in python
因此,我嘗試遍歷python中的字典對象,而我得到的只是列表錯誤。 這是我的清單-
test_list = {"1":[{"1":[{"a":"100","b":"200"}],"2":[{"a":"300","b":"400"}]}]}
這是代碼-
for counter in range(len(test_list)):
print test_list['1'][counter]
知道為什么我會收到該錯誤嗎?
編輯:我想訪問test_list中的所有a&b元素
您的代碼不會對我造成錯誤。 如果需要第一個a和b元素,則需要:
for key, val in test_list['1'][0]['1'][0].items():
print key, val
不用說,這很令人費解。 您所擁有的是詞典列表中的詞典。 為什么使用這種數據結構? 幾乎可以肯定有一種更簡單的方式來表示您的數據。
for k,v in test_list.items():
print v[0]['1']
好的,也許這個幫助:
for c in test_list:
for v in test_list[c]:
print v['1']
print v['2']
python 3.2
t = {"1":[{"1":[{"a":"100","b":"200"}],"2":[{"a":"300","b":"400"}]}]}
res=[v["a"] for x in t.values() for p in x for y in p.values() for v in y] # values for a
列表中的嵌套字典非常棒。
我做了以下操作,可以對其進行修改以訪問所需的項目。
In [21]: inside_dict = test_list['1'][0]
In [22]: for key,val in inside_dict.items():
print '{} contains'.format(key)
for key2, val2 in val[0].items():
print '\t{}: {}'.format(key2, val2)
Out[22]:
1 contains
a: 100
b: 200
2 contains
a: 300
b: 400
所以這是答案
for key, val in test_list['1'][0].items():
print key, val[0]['a']
print key, val[0]['b']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.