Python 为什么内部循环不影响外部循环?

Python 为什么内部循环不影响外部循环?,python,python-3.x,Python,Python 3.x,假设以下代码: my_list = [1,2,3] for x in my_list: for y in my_list: print(x,y) #implicit next(my_list) 为什么内部隐式的nextmy_列表不影响外部循环?列表是一个iterable。您可以在其上调用itermy_list来检索迭代器。此迭代器独立于其他迭代器将特定索引保存到列表中 对于我的清单中的x,它的工作原理是 temp_iter1 = iter(my

假设以下代码:

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

为什么内部隐式的nextmy_列表不影响外部循环?

列表是一个iterable。您可以在其上调用itermy_list来检索迭代器。此迭代器独立于其他迭代器将特定索引保存到列表中

对于我的清单中的x,它的工作原理是

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

我的列表未定义/设置。我更正了这一点,谢谢您是否要更改当前在中循环的列表?您不能在列表上调用next返回迭代器,迭代器是每次返回一个元素的数据流的容器,因此,在本例中,您不是在列表的iterable上迭代,而是在这个容器上迭代。因此,内部循环和外部循环实际上并没有在同一个对象上迭代,即使语法使它看起来是这样的。