我正在尝试制作一个简单的迭代器,它在列表中循环并从 python 中的列表中返回三个连续的数字,但我得到了非常奇怪的结果 - 代码只有在列表中的数字按升序排列时才能正常工作。
import itertools
c=[0,1,2,3,0,5,6]
counter=itertools.cycle(c)
def func(x):
if x==len(c)-1:
return c[x],c[0],c[1]
elif x==len(c)-2:
return c[x],c[len(c)-1],c[0]
else:
return c[x],c[x+1],c[x+2]
for i in range(len(c)+2):
print(func(next(counter)))
'我试图创建一个简单的迭代器,它循环遍历一个列表并从 python 中的列表中返回三个连续的数字,但我得到了非常奇怪的结果 - 代码只有在列表中的数字按升序排列时才能正常工作。Atom 打印以下内容第 5 个元组。请帮忙..
(0, 1, 2)
(1, 2, 3)
(2, 3, 0)
(3, 0, 5)
(0, 1, 2)
(5, 6, 0)
(6, 0, 1)
(0, 1, 2)
(1, 2, 3)
'