gpt4 book ai didi

python - 来自 itertools.cycle 生成器的列表理解

转载 作者:太空宇宙 更新时间:2023-11-04 06:49:48 24 4
gpt4 key购买 nike

我的问题是我需要以列表形式从 itertools.cycle 生成器交付批处理。

A cycle接受一个可迭代对象并无限期地围绕自身循环。例如:

>>> my_cycle = itertools.cycle('abc')
>>> next(my_cycle)
'a'
>>> next(my_cycle)
'b'
>>> next(my_cycle)
'c'
>>> next(my_cycle)
'a'

等等。

问题就变成了,我们如何从循环生成器中传递批处理长度 n 的列表,同时保留我们在循环中的位置?

期望的输出是:

c = itertools.cycle('abc')
batch_size = 2
Out[0]: ['a', 'b']
Out[1]: ['c', 'a']
Out[2]: ['b', 'c']

我会发布我的解决方案,以防有人遇到同样的问题。

最佳答案

好像islice是为此而生的:

>>> from itertools import cycle, islice
>>> size_of_batch = 5
>>> c = cycle('abcdefg')
>>> list(islice(c, size_of_batch))
['a', 'b', 'c', 'd', 'e']
>>> list(islice(c, size_of_batch))
['f', 'g', 'a', 'b', 'c']

关于python - 来自 itertools.cycle 生成器的列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49080655/

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