Skip to main content
 首页 » 编程设计

python之如何使用一个 for 循环遍历 2 个字典

2025年05月04日11telwanggs

我有如下两个数据结构:

DATASET_0 = { 'key1': [ object1, object2, objectN ], 
              'key2': [ object3, object4] 
            } 
DATASET_1 = { 'key1': [ object5, object6, objectN ], 
              'key3': [ object7, object8], 
              'key4': [ object9, object10], 
            } 

(这是一个高度简化的版本,但它显示了两个顶级组件——基本上是一个列表字典)

所以同一个键可能出现在两个字典中,但指向不同的对象。通常我可以即时合并两个字典并迭代合并,但在这种情况下我不能这样做。我也无法将顶级项目设为列表。

如果顶级项目是一个列表,我可以这样做:

for item in DATASET_0 + DATASET_1: 
    blah 

有没有办法用字典做同样的事情?

请您参考如下方法:

itertools.chain在这样的时候是个好 friend 。

from itertools import chain 
 
d1 = {'foo': ['bar']} 
d2 = {'foo': ['baz']} 
for k, v in chain(d1.iteritems(), d2.iteritems()): 
   print k, v 

如果你只想遍历键,那会变得更容易(并且无需修改即可移植到 python3.x!)

for k in chain(d1, d2): 
    print(k)