如何使用for循环在python中实际工作?

Nan*_*tel 4 python for-loop list python-3.x

我试过这段代码,我不明白它是如何工作的

a=[1,'a',2,'b','test','exam']
for a[-1] in a:
    print(a[-1])
Run Code Online (Sandbox Code Playgroud)

产量

1
a
2
b
test
test
Run Code Online (Sandbox Code Playgroud)

Sza*_*lcs 5

在python中,您可以使用索引隐式访问列表的最后一个元素-1.因此a[-1]将返回列表的最后一个元素的值a.

通过执行for循环for a[-1] in a,您遍历列表,并将下一个元素的值存储a在其最后一个元素中.

因此,为了更好地了解正在发生的事情,您应该在每次迭代时打印整个列表,以便可以可视化操作:

a=[1, 'a', 2, 'b', 'test', 'exam']
for a[-1] in a:
    print(a)
Run Code Online (Sandbox Code Playgroud)

你会得到:

[1, 'a', 2, 'b', 'test', 1]
[1, 'a', 2, 'b', 'test', 'a']
[1, 'a', 2, 'b', 'test', 2]
[1, 'a', 2, 'b', 'test', 'b']
[1, 'a', 2, 'b', 'test', 'test']
[1, 'a', 2, 'b', 'test', 'test']
Run Code Online (Sandbox Code Playgroud)

您可以看到,在每次迭代时,最后一个元素将保存即将发生的元素的值,实际上您将丢失最后一个元素的原始内容,即'exam'它在每次迭代中都会被覆盖.

希望现在有意义.