首页 > 解决方案 > 为什么会这样打印

问题描述

迭代如何在以下代码段中发生?

a=[0,1,2,3]
b=[]
for a[-1] in a:
    b.append(a[-1])
print(b)

Output is [0,1,2,2]

标签: python-3.x

解决方案


Pythonfor循环使用赋值,如果使用不当,可能会导致有趣的结果。

您的示例可以简化以更好地反映这一点。由于a[-1]访问 中的最后一个元素a,因此以下代码实际上会修改a

a = [0, 1]
for a[-1] in [9]:
    pass
print(a)

输出

[0, 9]

推荐阅读