是否有具有自动 "unpacking" 元组的 `zip` 方法的可读内置概括?
Is there a readable built-in generalization of the `zip` method with automatic "unpacking" of tuples?
给定两个列表 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
给定两个列表 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