【问题标题】:Why does it prints like this为什么会这样打印
【发布时间】:2020-05-19 01:22:03
【问题描述】:

接下来的sn-p中迭代是如何发生的?

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

Output is [0,1,2,2]

【问题讨论】:

  • 您正在使用a[-1]a 中的最后一个条目)作为迭代变量。因此,您将 a[-1] 依次设置为每个值。
  • 您期望的输出是什么?您是否尝试过使用调试器单步执行代码?

标签: python-3.x


【解决方案1】:

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

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

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

输出

[0, 9]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2018-10-15
    相关资源
    最近更新 更多