迭代字典名称列表

时间:2013-12-02 16:05:47

标签: python dictionary

我正在尝试使用数据集创建广度优先搜索。我需要遍历数据集,但我不知道如何遍历包含列表的字典列表。

我知道要获得说node 2秒值,我会a[1]['node2][1]。但是,我不确定如何遍历每个名​​称。

这不是实际的代码,但我想要类似的东西:

   for key_of_dict in a:
       print key_of_dict
       for j in a[key_of_dict]
           print ": " + j

    #This pseudo code should print the key and the data in the list of the respective dict 

例如:

a = 
[
  {'node1':[1,2,3]},
  {'node2':[4,5,6]},
  {'node3':[7,8,9]},
  {'node4':['a','b','c']}
]

2 个答案:

答案 0 :(得分:1)

只需遍历dict.values()

for d in a:
    for v in d.values():
        print(v)

演示:

>>> for d in a:
    for v in d.values():
        print(*v)


1 2 3
4 5 6
7 8 9
a b c

或者只打印v

[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
['a', 'b', 'c']

要获取密钥,请遍历d.items(),这将返回字典的键值对。

希望这有帮助!

答案 1 :(得分:1)

a = [{'node1':[1,2,3]},
     {'node2':[4,5,6]},
     {'node3':[7,8,9]},
     {'node4':['a','b','c']}]

python 2.7:

for dict in a:
    for key,list in dict.iteritems():
        print '{} : {}'.format(key,list)

python 3:

for dict in a:
    for key,list in dict.items():
        print('{} : {}'.format(key,list))

输出:

node1 : [1, 2, 3]
node2 : [4, 5, 6]
node3 : [7, 8, 9]
node4 : ['a', 'b', 'c']