我在谷歌搜索时发现了这个问题,但不明白它是怎么发生的?
a = [0, 1, 2, 3]
for a[-1] in a:
print(a[-1])
Run Code Online (Sandbox Code Playgroud)
结果:
0 1 2 2
现在,如果我再次打印:
a
[0, 1, 2, 2]
Run Code Online (Sandbox Code Playgroud)
另一个类似的例子:
让 a 成为原始列表,即 [0,1,2,3]
现在,让我们运行另一个 for 循环,但像这样:
for a[0] in a:
print(a[0])
Run Code Online (Sandbox Code Playgroud)
这次的结果是:
0 1 2 3
但再次打印:
[3,1,2,3]
Run Code Online (Sandbox Code Playgroud)
所以,我有两个问题:
1) 在这两种情况下,原始列表是如何更新的?
2)第一种情况下的结果的解释是什么,即循环的负索引?
注意:a[-1]指的是列表的最后一个元素。
您a[index]在每次循环迭代中分配给
for a[index] in a:
Run Code Online (Sandbox Code Playgroud)
a[index]将在循环期间分配值a[0], a[1], ...,a[-1]并最终分配给
a[index] = a[-1]
Run Code Online (Sandbox Code Playgroud)
通常你尽量不要弄乱你正在迭代的列表:
for item in a:
# do something with item
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4031 次 |
| 最近记录: |