【发布时间】:2021-06-19 02:03:22
【问题描述】:
在 Python 3 中,zip(*iterables) 和 documentation 一样
返回元组的迭代器,其中第 i 个元组包含来自每个参数序列或可迭代对象的第 i 个元素。当最短的输入迭代用完时,迭代器停止。
举个例子,我在跑
for x in zip(a,b):
f(x)
有没有办法找出导致 zip 迭代器停止的迭代器,a 或 b?
假设len() 不可靠,并且遍历a 和b 来检查它们的长度是不可行的。
【问题讨论】:
-
您打算如何处理结果?这可能是XY problem。例如,您最好使用
itertools.zip_longest而不是zip。 -
顺便说一句,欢迎来到 SO!如果需要提示,请查看 tour 和 How to Ask。
-
@wjandrea 谢谢!我的目的是确保两个迭代器中的第一个是耗尽的,否则引发异常。一个潜在的解决方法可能是仅迭代
a并在循环内获取next(b),但我不确定这是否完全相同,以防a更短。
标签: python python-3.x iterator generator