这个for循环是如何工作的?

时间:2016-10-12 12:25:05

标签: python

请告诉我这个for循环是如何工作的。

b= [4,5,6]
for b[-1] in b:
   print(b[-1])

此代码段输出为: -

4
5
5

我用Python 2.7检查了它

2 个答案:

答案 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

所以基本上每次迭代你的最后一个元素都会成为你迭代的元素。