本文介紹了在 Python 中的迭代器之間交替的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
在 Python 中交替從不同迭代器獲取值的最有效方法是什么,例如 alternate(xrange(1, 7, 2), xrange(2, 8, 2))
將產生 1、2、3、4、5、6.我知道實現它的一種方法是:
What is the most efficient way to alternate taking values from different iterators in Python, so that, for example, alternate(xrange(1, 7, 2), xrange(2, 8, 2))
would yield 1, 2, 3, 4, 5, 6. I know one way to implement it would be:
def alternate(*iters):
while True:
for i in iters:
try:
yield i.next()
except StopIteration:
pass
但是有沒有更有效或更清潔的方法?(或者,更好的是,我錯過了一個 itertools
函數?)
But is there a more efficient or cleaner way? (Or, better yet, an itertools
function I missed?)
推薦答案
zip呢?你也可以試試 itertools 的 izip
what about zip? you may also try izip from itertools
>>> zip(xrange(1, 7, 2),xrange(2, 8 , 2))
[(1, 2), (3, 4), (5, 6)]
如果這不是您想要的,請在您的問題帖子中提供更多示例.
if this is not what you want, please give more examples in your question post.
這篇關于在 Python 中的迭代器之間交替的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!