给定两个列表a=[(1,11), (2,22), (3,33)]
和b=[111, 222, 333]
,我想知道是否有一个语法上易于阅读的解决方案来迭代三元组值,如下所示:
for x,y,z in WANTED(a, b):
print(x, y, z)
# should iterate over (1,11,111), (2,22,222), (3,33,333)
我知道这可以像一样完成
for _item, z in zip(a, b):
x, y = _item
print(x, y, z)
我也知道如何将其打包到我自己的自定义迭代器中,但我想知道是否可以使用低级别的内置解决方案(可能是itertools
(,通过语法上易于阅读的代码来实现这一点。
如果我正确理解你,你可以做:
a = [(1, 11), (2, 22), (3, 33)]
b = [111, 222, 333]
for (x, y), z in zip(a, b): # <-- note the (x, y)
print(x, y, z)
此打印:
1 11 111
2 22 222
3 33 333