gpt4 book ai didi

python - 一次遍历生成器两个项目

转载 作者:太空狗 更新时间:2023-10-29 22:08:52 24 4
gpt4 key购买 nike

我已经定义了一个从 Elasticsearch 生成日志条目的生成器:

def gen():
....
for hit in results:
yield hit

如何同时遍历两个元素?内容如下:

for one, two in gen():
...

我的意思是两个元素:A, B , B, C , ..., Y, Z (对于生成的 A, B, ..., Y, Z 列表)。

最佳答案

此答案假定您需要非重叠对。您可以通过 zip() 执行此操作,因为迭代器已被消耗:

for one, two in zip(gen, gen):
# do something

例子:

>>> gen = (x for x in range(5))
>>> for one, two in zip(gen, gen): print(one,two)
...
0 1
2 3

注意,如 timgeb注释,如果元素数量不均匀并且希望最后一个具有填充值,则应使用 itertools.zip_longest,例如:

>>> gen = (x for x in range(5))
>>> for one, two in zip_longest(gen, gen): print(one, two)
...
0 1
2 3
4 None

关于python - 一次遍历生成器两个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43842603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com