在Python中,`中的'for a[x]是什么意思?

在Python中,`中的'for a[x]是什么意思?,python,Python,我是Python新手,试图理解下面代码的奇怪行为。我如何理解以下输出?我认为它应该打印3,但它正在打印下面的输出 a=[0,1,2,3] for a[3] in a: print(a[3]) 输出: 0 1 2 2 对于a:中的a[3],依次将a的元素分配给其最后一个元素: 第一次迭代,a[3]变成a[0],它是0>打印0 第二次迭代,a[3]变成a[1],即1>打印1 第三次迭代,a[3]变成a[2],即2>打印2 第四次迭代,a[3]变成a[3](因此保持不变),即2>打印2

我是Python新手,试图理解下面代码的奇怪行为。我如何理解以下输出?我认为它应该打印3,但它正在打印下面的输出

a=[0,1,2,3]
for a[3] in a:
    print(a[3])
输出:

0 1 2 2

对于a:
中的a[3],依次将
a的元素分配给其最后一个元素:

  • 第一次迭代,
    a[3]
    变成
    a[0]
    ,它是
    0
    >打印
    0

  • 第二次迭代,
    a[3]
    变成
    a[1]
    ,即
    1
    >打印
    1

  • 第三次迭代,
    a[3]
    变成
    a[2]
    ,即
    2
    >打印
    2

  • 第四次迭代,
    a[3]
    变成
    a[3]
    (因此保持不变),即
    2
    >打印
    2


对于a:
中的[3]将
的元素依次分配给其最后一个元素:

  • 第一次迭代,
    a[3]
    变成
    a[0]
    ,它是
    0
    >打印
    0

  • 第二次迭代,
    a[3]
    变成
    a[1]
    ,即
    1
    >打印
    1

  • 第三次迭代,
    a[3]
    变成
    a[2]
    ,即
    2
    >打印
    2

  • 第四次迭代,
    a[3]
    变成
    a[3]
    (因此保持不变),即
    2
    >打印
    2


当您在for循环中使用相同的变量名时,它可以覆盖当前值,在您的情况下,将显示
a[3]
而不是
a
列表的每个项目,现在当当前索引变为
3
时,它会写入实际的
a[3]
值,即
2

为了更好地理解:

a=[0,1,2,3]
for a[2] in a:
    print(a[2])

输出:0 1 1 3

当您在for循环中使用相同的变量名时,它可以覆盖当前值,在您的情况下,将显示
a[3]
而不是
a
列表的每个项目,现在当当前索引变为
3
时,它将写入实际的
a[3]
值,即
2

为了更好地理解:

a=[0,1,2,3]
for a[2] in a:
    print(a[2])

输出:0 1 1 3

我编写python已经10年了,从未见过这样的代码。请不要假设这是正常的python代码。在python中,编写清晰易懂的代码被认为是最佳实践——这段代码不符合这一标准。我编写python已经10年了,从未见过这样的代码。请不要假设这是正常的python代码。在python中,编写清晰易懂的代码被认为是最佳实践—此代码不符合该标准。这是否也意味着它将修改原始列表。这是否也意味着它将修改原始列表。