Python 实现 itertools.cycle
Python 实现 itertools.cycleclass cycle:
def __init__(self, iterable):
self.__it = iter(iterable)
self.__res = []
self.__flag = False # 迭代器是否已无元素可取
def __iter__(self):
return self
def __next__(self):
if self.__flag:
try:
return next(self.__it)
except StopIteration:
self.__it = iter(self.__res)
return next(self.__it)
else:
try:
val = next(self.__it)
self.__res.append(val)
return val
except StopIteration:
self.__flag = True
self.__it = iter(self.__res)
return next(self.__it)
如果代码有错误,欢迎在下方留言指出{:5_109:} 我也整一个{:10_255:}def cycle(iterable, /):
save=[]
for i in iterable:
yield i
save.append(i)
if save:
while True:
yield from save
页:
[1]