在Python中,`中的'for a[x]是什么意思?
我是Python新手,试图理解下面代码的奇怪行为。我如何理解以下输出?我认为它应该打印3,但它正在打印下面的输出在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
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中,编写清晰易懂的代码被认为是最佳实践—此代码不符合该标准。这是否也意味着它将修改原始列表。这是否也意味着它将修改原始列表。