列表[index]在同一列表中的可迭代性如何工作

时间:2017-11-09 07:12:54

标签: python python-3.x iterable

假设我有一个列表'A',我想使用 A [-1]

遍历此列表
A = [1,2,3,40,50]
for A[-1] in A:
    print(A[-1])

输出:

1
2
3
40
40

任何人都可以帮助我了解幕后发生的事情吗? 我对交互如何工作有一些了解,但这个让我感到困惑。

1 个答案:

答案 0 :(得分:3)

stepLength语句在每次迭代中将for item in list中的每个元素分配给list。当您键入item而不是A[-1]时,它会将元素分配给item,并A[-1]列出更改。

为了更好地理解,让我们更改您的A而不影响结果和代码逻辑,并添加额外的for loop

print

输出:

A = [1,2,3,40,50]
for x in A:
    A[-1] = x
    print(A[-1])
    print(A)

如您所见,在每次迭代中,A的最后一项都会发生变化。它会覆盖最后一个元素。在最后一次迭代中,最后一项(1 [1, 2, 3, 40, 1] 2 [1, 2, 3, 40, 2] 3 [1, 2, 3, 40, 3] 40 [1, 2, 3, 40, 40] 40 [1, 2, 3, 40, 40] )之前的那一项成为最后一项。