数组代码中的列表分配索引超出范围错误

时间:2019-10-31 05:19:23

标签: python-3.x list

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”)超出范围。 为什么?

2 个答案:

答案 0 :(得分:0)

这是因为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])

答案 1 :(得分:0)

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

下面的代码段使用附加方法。

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])