为什么显示 'list index out of range'?
why is 'list index out of range' showing?
n = int(input())
students = list()
for i in range(0,n):
students[i][0]=input("Name: "); students[i][1]=float(input("Grade: "))
我写了这段代码,但 'list index out of range' 正在显示。我不明白为什么会这样。
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-46-966bd0f334a2> in <module>
1 n = int(input())
2 for i in range(0,n):
----> 3 students[i][0]=input(); students[i][1]=float(input())
IndexError: list index out of range
请帮忙。
您的代码不起作用的原因是您试图在 students
为空列表时分配 students[i]
。同样,当 students[i]
甚至不存在时,您试图分配 students[i][0]
和 students[i][1]
!
解决方案很简单:不是分配给列表 (x[1] = 3
),而是附加到列表 (x.append(3)
)。
n = int(input())
students = list()
for i in range(0,n):
students.append([]) # Must add empty list otherwise students[i] doesn't exist
students[i].append(input("Name: ")); students[i].append(float(input("Grade: ")))
print(students)
# Prints [['a', 1.0], ['b', 2.0], ['c', 3.0]]
# after inputting 3, a, 1, b, 2, c, 3
n = int(input())
students = list()
for i in range(0,n):
students[i][0]=input("Name: "); students[i][1]=float(input("Grade: "))
我写了这段代码,但 'list index out of range' 正在显示。我不明白为什么会这样。
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-46-966bd0f334a2> in <module>
1 n = int(input())
2 for i in range(0,n):
----> 3 students[i][0]=input(); students[i][1]=float(input())
IndexError: list index out of range
请帮忙。
您的代码不起作用的原因是您试图在 students
为空列表时分配 students[i]
。同样,当 students[i]
甚至不存在时,您试图分配 students[i][0]
和 students[i][1]
!
解决方案很简单:不是分配给列表 (x[1] = 3
),而是附加到列表 (x.append(3)
)。
n = int(input())
students = list()
for i in range(0,n):
students.append([]) # Must add empty list otherwise students[i] doesn't exist
students[i].append(input("Name: ")); students[i].append(float(input("Grade: ")))
print(students)
# Prints [['a', 1.0], ['b', 2.0], ['c', 3.0]]
# after inputting 3, a, 1, b, 2, c, 3