首页 > 解决方案 > 为什么内循环不影响外循环?

问题描述

假设以下代码:

my_list = [1,2,3]
for x in my_list:
     for y in my_list:
          print(x,y)
          #implicit next(my_list)

为什么内部隐式 next(my_list) 不影响外部循环?

标签: pythonpython-3.x

解决方案


列表是可迭代的。您可以调用iter(my_list)它来检索迭代器。此迭代器独立于其他迭代器将特定索引保存到列表中。

for x in my_list实际上就像

temp_iter1 = iter(my_list)
try:
    while True:
        x = next(temp_iter1)
        ... # Loop code
except StopIteration:
    pass

推荐阅读