使用生成器循环遍历列表中的数字
Using generator to cycle through numbers in a list
我正在寻找一种在每次调用函数时循环访问列表中的数字的方法。
我使用了生成器,它returns 列表中的成员一次一个,但我还没有找到在函数 returns 之后返回到列表开头的方法最后一个元素。
def returnSeq(self, numRows):
for seq in [0, 1, 2, 3, 2, 1]:
yield seq
如果有更好的实现方法,不胜感激
提前谢谢你,
你基本上是在重新实现 itertools.cycle
:
import itertools
itertools.cycle([0, 1, 2, 3, 2, 1]) # <- there's your infinite generator
使用 while
循环:
def returnSeq(self, numRows):
i = 0
items = [0, 1, 2, 3, 2, 1]
n_items = len(items)
while True:
yield items[i]
i = (i + 1) % n_items
这会不断增加 i
模列表中的元素数。这意味着它是一个无限生成器,重复生成列表中的元素。
我正在寻找一种在每次调用函数时循环访问列表中的数字的方法。
我使用了生成器,它returns 列表中的成员一次一个,但我还没有找到在函数 returns 之后返回到列表开头的方法最后一个元素。
def returnSeq(self, numRows):
for seq in [0, 1, 2, 3, 2, 1]:
yield seq
如果有更好的实现方法,不胜感激
提前谢谢你,
你基本上是在重新实现 itertools.cycle
:
import itertools
itertools.cycle([0, 1, 2, 3, 2, 1]) # <- there's your infinite generator
使用 while
循环:
def returnSeq(self, numRows):
i = 0
items = [0, 1, 2, 3, 2, 1]
n_items = len(items)
while True:
yield items[i]
i = (i + 1) % n_items
这会不断增加 i
模列表中的元素数。这意味着它是一个无限生成器,重复生成列表中的元素。