我正在尝试使用其本机函数iter()和next()构建一个迭代器。但是我编写的代码直到结束都没有迭代。它只读取第一个字符。我对代码做了什么错误。
def itera(x):
while True:
it = iter(x)
return (next(it))
print(itera([1,2,3,4,5]))
答案 0 :(得分:1)
因为您使用it = iter(x)
重新创建了迭代器。将其放在循环之外。即使这样,由于return语句仍无法按预期方式运行,因为return语句会在第一个元素之后停止执行。而是需要生成器:
def itera(x):
it = iter(x)
while True:
yield (next(it))
print(list(itera([1,2,3,4,5])))