【问题标题】:List Assignment Index out of range error in array-code数组代码中的列表分配索引超出范围错误
【发布时间】:2019-10-31 13:35:41
【问题描述】:
k = int(input("Enter the number of elements in the list: "))
n = []
for i in range(k):
    n[i] = int(input(str(i+1) + " = "))
    print(n[i])

这是一个代码,用于接收具有所需列表(数组)长度的所需元素数量。放入 print(n[i]) 只是为了检查是否达到了这一步。但是错误发生在此之前,并指出列表分配索引(我假设为“i”)超出范围。 为什么?

【问题讨论】:

  • 因为那个元素不存在(列表是空的),可以用.append给列表添加元素吗?如果列表中的元素一开始就存在,您可以更改它。

标签: python-3.x list


【解决方案1】:

这是因为 n 被初始化为大小 0。当您将 n[1] 分配给某个值时,它会给您索引超出范围的错误。尝试改用append

k = int(input("Enter the number of elements in the list: "))
n = []
for i in range(k):
    n.append(int(input(str(i+1) + " = ")))
    print(n[i])

【讨论】:

  • 可爱!我现在明白了。谢谢!
【解决方案2】:

如果您尝试将(添加)到您的列表中,则在此处为 n 您必须使用 append 而不是 n[i] 。当您使用n[i] 时,您实际上是在分配一个值而不是添加一个新值。

下面的sn-p使用的是追加方式。

k = int(input("Enter the number of elements in the list: "))
n = []
for i in range(k):
    n.append(int(input(str(i+1) + " = ")))
    print(n[i])

如果您仍想通过分配给列表值来解决问题,您也可以这样做。

k = int(input("Enter the number of elements in the list: "))
n = [None] * k
for i in range(k):
    n[i] = int(input(str(i+1) + " = "))
    print(n[i])

【讨论】:

  • 非常感谢!我明白了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-06
  • 2019-07-26
  • 1970-01-01
  • 2017-06-28
  • 1970-01-01
相关资源
最近更新 更多