gpt4 book ai didi

python - 如何从迭代器/生成器中取出第一个元素并将其放回 Python 中?

转载 作者:行者123 更新时间:2023-12-03 22:12:03 26 4
gpt4 key购买 nike

我想从迭代器中取出第一个元素,分析它,然后把它放回去并使用迭代器,就好像它没有被触及一样。

现在我写道:

def prepend_iterator(element, it):
yield element
for element in it:
yield element


def peek_first(it):
first_element = next(it)
it = prepend_iterator(first_element, it)
return first_element, it

first_element, it = peek_first(it)

analyse(first_element)

continue_work(it)

有可能写得更好/更短吗?

最佳答案

这是一个例子,机智 itertools.tee

import itertools
def colors():
for color in ['red', 'green', 'blue']:
yield color

rgb = colors()
foo, bar = itertools.tee(rgb, 2)

#analize first element
first = next(foo)
print('first color is {}'.format(first))

# consume second tee
for color in bar:
print(color)

输出
first color is red
red
green
blue

关于python - 如何从迭代器/生成器中取出第一个元素并将其放回 Python 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53710439/

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