Python:while内进行for循环-为什么不“重新启动”?

时间:2018-12-17 09:11:59

标签: python python-3.x

我确实有以下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'))

1 个答案:

答案 0 :(得分:1)

我的猜测是lines是一个迭代器,它在while循环之前的某个时刻被初始化。由于迭代器仅是一次性的,因此,一旦在第一个for循环中对生成的元素进行循环,生成的元素就会消失,并且迭代器无法将自身重置为原始状态。

要重新开始枚举,您需要在lines循环开始之前在while循环内重新初始化for