Python 自引用 for 循环

iny*_*ace 3 python for-loop python-3.x

a = [0, 1, 2, 3]
for a[-1] in a:
    print(a[-1])
Run Code Online (Sandbox Code Playgroud)

输出是 0 1 2 2

为什么a[-1]每次迭代都会改变?

Bar*_*mar 5

您的代码相当于:

a[-1] = a[0]
print(a[-1])

a[-1] = a[1]
print(a[-1])

a[-1] = a[2]
print(a[-1])

a[-1] = a[3]
print(a[-1])
Run Code Online (Sandbox Code Playgroud)

每次通过循环,它都会将当前列表元素的值分配给a[-1]然后打印它。