如何在单个for循环中遍历两个词典?

Ind*_*pta 10 python dictionary

我想生成以下效果:

for i, j in d.items() and k, v in c.items():
    print i, j, k, v
Run Code Online (Sandbox Code Playgroud)

这是错的.我想知道如何实现这一目标?

jam*_*lak 19

for (i, j), (k, v) in zip(d.items(), c.items()):
   print i, j, k, v
Run Code Online (Sandbox Code Playgroud)

请记住,除非你的词典是OrderedDicts,否则命令将是任意的.为了记忆效率

在Python 2.x(where dict.itemszipcreate lists)中,您可以执行以下操作:

from itertools import izip
for (i, j), (k, v) in izip(d.iteritems(), c.iteritems()):
   print i, j, k, v
Run Code Online (Sandbox Code Playgroud)

这不一定会更快,因为您将在小型列表上观察到迭代这些中间列表会更快,但是在迭代非常大的数据结构时您会注意到速度的提高.

在Python中,3.x zipizip(不再存在)相同,并且dict.items(dict.iteritems不再存在)返回视图而不是列表.