将Python字典压缩并一起列出

Joh*_*ith 2 python dictionary list

是否可以将python字典和列表一起压缩?

例如:

dict = {'A':1, 'B':2, 'C':3}
num_list = [1, 2, 3]
zipped = zip(dict, num_list)
Run Code Online (Sandbox Code Playgroud)

然后我想做这样的事情:

for key, value, num_list_entry in zipped:
  print key
  print value
  print num_list_entry
Run Code Online (Sandbox Code Playgroud)

我还没有找到解决方案,所以我想知道如何去做?

jua*_*aga 6

注意:千万不能阴影内置dict。这有一天会回来困扰你。

现在,对于您的问题,只需使用dict.items

>>> d = {'A':1, 'B':2, 'C':'3'}
>>> num_list = [1, 2,3 ]
>>> for (key, value), num in zip(d.items(), num_list):
...     print(key)
...     print(value)
...     print(num)
...
A
1
1
C
3
2
B
2
3
>>>
Run Code Online (Sandbox Code Playgroud)

注意:字典不是有序的,所以在迭代它们时你不能保证项目的顺序。

附加说明:当您遍历字典时,它会遍历键:

>>> for k in d:
...     print(k)
...
A
C
B
Run Code Online (Sandbox Code Playgroud)

这使得这个常见的结构:

>>> for k in d.keys():
...     print(k)
...
A
C
B
>>>
Run Code Online (Sandbox Code Playgroud)

冗余,在 Python 2 中,效率低下。


小智 5

您可以使用iteritems()

dictionary = {'A':1, 'B':2, 'C':3}
num_list = [1, 2, 3]
zipped = zip(dictionary.iteritems(), num_list)

for (key, value), num_list_entry in zipped:
    print key
    print value
    print num_list_entry
Run Code Online (Sandbox Code Playgroud)