请告诉我这个for循环是如何工作的。
b= [4,5,6]
for b[-1] in b:
print(b[-1])
此代码段输出为: -
4
5
5
我用Python 2.7检查了它
答案 0 :(得分:6)
每次迭代,选择b的元素i。它归因于b [-1](b的最后一个元素)并打印出来。因此,每一步,b的最后一个元素(循环前的6)都归因于第i个元素的值。
最后,在最后一次迭代中,读取第i个值,读取的值是之前写入迭代的值(即5)。
修改代码以在每一步打印b,这很明显:
b = [4,5,6]
for b[-1] in b:
print(b[-1])
print(b)
(不要在现实生活中做这类事情。)
答案 1 :(得分:5)
您可以在打印整个b
列表时理解它:
b= [4,5,6]
for b[-1] in b:
print(b)
print(b[-1])
输出
[4, 5, 4] # first iteration, you set last element(6) with first element(4) [4,5,6] -> [4,5,4]
4
[4, 5, 5] # second iteration, you set last element(4) with element(5), [4,5,4] -> [4,5,5]
5
[4, 5, 5] # last iteration, you set last element(5) with element(5), no change
5
所以基本上每次迭代你的最后一个元素都会成为你迭代的元素。