我正在尝试使用其本机函数iter()和next()来构建迭代器。但是我写的代码直到最后都没有迭代。它只读取第一个字符。我在代码上做了什么错
def itera(x):
while True:
it = iter(x)
return (next(it))
print(itera([1,2,3,4,5]))
因为你用it = iter(x)
重新创建迭代器。把它放在循环之外。即便如此,由于return语句会在第一个元素之后停止执行,因此它不会按预期的方式工作。相反,你需要发电机:
def itera(x):
it = iter(x)
while True:
yield (next(it))
print(list(itera([1,2,3,4,5])))