【问题标题】:For-loop only returns last valueFor-loop 只返回最后一个值
【发布时间】:2021-01-02 18:25:56
【问题描述】:

我正在 python 上尝试这段代码:

N = 5

for n in xrange (0, N):
    a = [10 + n]
    
print(a[0])

代码返回14,当我尝试print(a[1]) 时出现列表索引错误。我想要的是能够查看a[0],a[1] ... a[n]。当我写 a=[10 + n for n in xrange (0,N)] 时,它可以工作,但我不明白其中的区别。任何人都可以帮助如何使第一种方法起作用吗?

【问题讨论】:

  • 每次循环都将a 重新分配给一个新列表,这会丢弃之前的值。
  • 您应该真的切换到 Python 3,因为 Python 2 只对那些需要维护无法(由于某种原因)迁移到 Python 3 的代码的人感兴趣。
  • 实际上我的 python 代码链接到我的 Dymola(Modelica) 模型,据我所知,它只适用于 python 2

标签: python loops for-loop


【解决方案1】:

您没有附加到列表;您在反复重新定义 a 所指的单元素列表。

a = []
for n in range(N):
    a.append(10 + n)

【讨论】:

    猜你喜欢
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多