是否可以将python词典和列表一起压缩?
例如:
dict = {'A':1, 'B':2, 'C':3}
num_list = [1, 2, 3]
zipped = zip(dict, num_list)
然后我想做这样的事情:
for key, value, num_list_entry in zipped:
print key
print value
print num_list_entry
我还没有找到解决方案,所以我想知道如何做到这一点?
答案 0 :(得分:4)
注意:不影响内置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
>>>
注意:字典不是有序的,因此在迭代它们时,您无法保证项目的顺序。
附加说明:当您遍历字典时,它会遍历键:
>>> for k in d:
... print(k)
...
A
C
B
这使得这个常见的结构:
>>> for k in d.keys():
... print(k)
...
A
C
B
>>>
冗余,在Python 2中,效率低下。
答案 1 :(得分:3)
您可以使用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