如何一次循环两个词典?

时间:2016-01-09 22:11:18

标签: python

如何在一个循环中迭代两个词典的项目?这不起作用:

for word, cls in self.spam.items() and self.ham.items():
    pass 

2 个答案:

答案 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
>>>