簡體   English   中英

遍歷python中包含數組對象的字典

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM