为什么它会使指数误差超出范围,尽管我几乎可以肯定我在范围内?

时间:2015-11-03 20:21:07

标签: python python-2.7

我试图用输入填充列表,但它给了我超出范围的索引 虽然索引从零开始,但据我所知,我们不必在python中指定列表的长度。

inputs = input("Enter the number of inputs: ")
lists = []
k = 0
while k<inputs:
    lists[k]= input()
    k+=1

4 个答案:

答案 0 :(得分:1)

因为您正在使用lists = []创建列表,然后访问此空列表的元素。这是IndexError

的原因

使用lists.append()附加可以帮助您避免像这样的索引错误。您通常希望在访问元素时使用索引,而填充列表

答案 1 :(得分:0)

使用list.append()将元素添加到列表末尾:

while k<inputs:
    lists.append(input())
    k+=1

或列表理解:

lists = [input() for _ in range(inputs)]

答案 2 :(得分:0)

您可以在使用索引之前初始化列表:

lists = [0] * int(inputs)

然后你可以使用你的代码

答案 3 :(得分:0)

另一种可能性:将lists初始化为空列表,然后使用+=操作数附加输入。

lists = []
k = 0
while k < inputs:
    lists += [input()]
    k+=1