我确实有以下python代码:
while not found:
for idx, intValue in lines:
if ...:
found = True
break
让我感到烦恼的是:for idx, intValues in lines:
部分被迭代一次,而while循环进入下一轮,我不再进入for循环。似乎枚举不会再次重新开始,而是停留在最后。为什么会这样,我该如何预防呢?
编辑
lines
初始化如下:
lines = tuple(open('text_file.txt', 'r'))
答案 0 :(得分:1)
我的猜测是lines
是一个迭代器,它在while
循环之前的某个时刻被初始化。由于迭代器仅是一次性的,因此,一旦在第一个for
循环中对生成的元素进行循环,生成的元素就会消失,并且迭代器无法将自身重置为原始状态。
要重新开始枚举,您需要在lines
循环开始之前在while
循环内重新初始化for
。