有没有一种惯用的方法来提前完成迭代器,以便下一步的任何一个()都能引发StopIteration?)我能想到一些丑陋的方式,比如虐待itertools.takewhile公司或者丢弃值,直到用尽为止)。你知道吗
编辑:
我的算法以n个长度未知的迭代器作为输入。它使用izip\u longest()从n元组中的每个元组中读取一个项,直到所有元组都用尽。有时,我发现我想根据某个运行时标准提前停止其中一个迭代器的输入,并用izipèu longest()提供的默认值流替换它。我能想到的最不具侵入性的方法就是以某种方式“完成”它。你知道吗
Tags:
从^{} Recipes :
在您的编辑中,您给出了您的用例:您想要一些行为类似于
izip_longest
的东西,但是允许您过早地“禁用”迭代器。这里有一个迭代器类,它允许这样做,以及“启用”以前禁用的迭代器。你知道吗举个例子:
但总的来说这听起来是个坏主意
你真正应该做的是
对于@jme注释中列出的示例,请使用以下内容
相关问题 更多 >
编程相关推荐