我试图从文档中理解^{}的“等效代码”。你知道吗
def izip(*iterables):
# izip('ABCD', 'xy') --> Ax By
iterators = map(iter, iterables)
while iterators:
yield tuple(map(next, iterators))
既然iterators
是一个非空列表,这不应该产生一个无限循环吗?
我还尝试将print iterators
放在函数的底部,但始终没有执行。为什么?你知道吗
Tags:
当迭代器耗尽时,当对其调用
next()
时,它将引发StopIteration
。你知道吗因此,
tuple(map(next, iterators))
将把StopIteration
异常传播给调用方,从而中断无限循环。你知道吗相关问题 更多 >
编程相关推荐