在python中,假设我有三个词:
d1, d2, d3 = {...}, {...}, {...}
我需要遍历每一个并执行相同的操作:
for k, v in d1.iteritems():
do_some_stuff(k, v)
for k, v in d3.iteritems():
do_some_stuff(k, v)
for k, v in d3.iteritems():
do_some_stuff(k, v)
有没有办法在一个循环中执行此操作,以便每个字典连续迭代?像这样的东西,但语法明显不正确:
for k, v in d1.iteritems(), d2.iteritems(), d3.iteritems():
do_some_stuff(k, v)
我不想要合并字典。我能想到的最好的是下面的嵌套循环,但似乎应该有“更多的pythonic,单循环方式。”
for d in (d1, d2, d3):
for k, v in d.iteritems():
do_some_stuff(k, v)
答案 0 :(得分:10)
您想要chain
:
from itertools import chain
for k,v in chain(d1.iteritems(), d2.iteritems(), d3.iteritems()):
do_some_stuff(k, v)
或更一般
ds = d1,d2,d3
for k,v in chain.from_iterable(d.iteritems() for d in ds):
do_some_stuff(k, v)