【发布时间】:2022-10-06 21:51:48
【问题描述】:
尽管将列表重新分配给 [],为什么下面的 for 循环仍然完全执行?
def iterate(l):
for x in l:
l = []
print(x)
iterate([1, 2, 3]) # prints 1 2 3
我知道这是一种不好的做法,但我对这种行为背后的“科学”很感兴趣。
在调试器中检查l 变量,我可以看到它变成了[];虽然看不到原版。
-
l = []是一个赋值,而不是一个声明。无论如何,它不会影响循环,因为您没有更改原始列表。您正在更改列表来自的变量。这是非常不同的。 -
循环在任何元素上循环姓名
l指向,然后你改变什么姓名l指向循环内的[],但这不会改变列表中的循环。
标签: python