如何解决我的代码错误“列表索引超出范围”

时间:2019-06-11 23:28:27

标签: python

如何解决我的代码出现以下错误?

void function()
{
    long long number = 0;
    long long problemSize = 100;
    long long res = 0;

    for( long long i = 0; i < problemSize; ++i )
    {
        number++;
        res += number;
        number--;
    }
    cout << res << endl;
}

这是有问题的代码:

Traceback (most recent call last):
   File "main.py", line 143, in <module>
     print(question_list2[random_int])
IndexError: list index out of range

2 个答案:

答案 0 :(得分:2)

random docs

  

random.randint(a,b)
   返回一个随机整数N,使得a <= N <= b

这意味着:

top_index = 4
random_int = random.randint(0,top_index)

可以将random_int设置为34,这不在您的列表范围之内,列表中只有三个项的索引为0,{{1} }和1

与其更改列表和使用索引,不如创建一个索引列表,对其进行随机排序,然后对其进行遍历:

2

如果将问题和答案一起保留在一个列表中,则可以完全取消索引。这将是named tuples

的好用法
indexes = random.sample(range(0, len(question_list)), k = len(question_list))

for i in indexes:
    # etc...

答案 1 :(得分:0)

我相信您的清单上只有三件事。范围应为range(0,3),也许您的top_index应该为top_index = 2。

由于列表上的索引为[0,1,2]

列表中的第一项>索引= 0

列表中的第二项>索引= 1

列表中的第三项>索引= 2