我想产生以下效果:
for i, j in d.items() and k, v in c.items():
print i, j, k, v
这是错误的。我想知道我怎样才能做到这一点?
我想产生以下效果:
for i, j in d.items() and k, v in c.items():
print i, j, k, v
这是错误的。我想知道我怎样才能做到这一点?
for (i, j), (k, v) in zip(d.items(), c.items()):
print i, j, k, v
OrderedDict
请记住,除非您的字典是s ,否则顺序将是任意的。提高内存效率
在 Python 2.x(wheredict.items
和zip
create lists)中,您可以执行以下操作:
from itertools import izip
for (i, j), (k, v) in izip(d.iteritems(), c.iteritems()):
print i, j, k, v
这不一定会更快,因为您会在小列表上观察到迭代这些中间列表会更快,但是在迭代非常大的数据结构时您会注意到速度有所提高。
在 Python 3.xzip
中,与izip
(不再存在) 和dict.items
(dict.iteritems
不再存在) 相同,返回视图而不是列表。
您的问题并不清楚,是否要在两个嵌套的 for 循环中或并排迭代字典(如 @jamylak 的回答中所做的那样)
这是嵌套解释
from itertools import product
for (i, j), (k, v) in product(d.items(), c.items()):
print i, j, k, v
例如
>>> d={'a':'Apple', 'b':'Ball'}
>>> c={'1':'One', '2':'Two'}
>>> from itertools import product
>>> for (i, j), (k, v) in product(d.items(), c.items()):
... print i, j, k, v
...
a Apple 1 One
a Apple 2 Two
b Ball 1 One
b Ball 2 Two