如何在一个循环中迭代两个词典的项目?这不起作用:
for word, cls in self.spam.items() and self.ham.items():
pass
答案 0 :(得分:4)
使用itertools.chain
:
from itertools import chain
for word, cls in chain(self.spam.items(), self.ham.items()):
print(word, cls)
答案 1 :(得分:3)
因为在Python2中,dict.items()
将生成(key,value)
元组列表,您可以连接两个列表,而在Python3中,它将返回viewing object,因此我们需要转换它到list
,所以以下也是一种方法:
>>> d1 = {1:'ONE',2:'TWO'}
>>> d2 = {3:'THREE', 4:'FOUR'}
>>> dict_chained = d1.items() + d2.items() #Python2
>>> dict_chained = list(d1.items())+list(d2.items())) #Python3
>>> for x,y in dict_chained:
print x,y
1 ONE
2 TWO
3 THREE
4 FOUR
>>>