列表已满,列表索引超出范围

时间:2018-01-25 15:11:25

标签: python-3.x list indexing

执行此代码时:

import random
list1 = ['afgdddd', 'bcbvnbn', 'casretb', 'dbcbv ', 'egfhsgs']
list2 = ['a5y5546', 'brtewtwret', 'chrtyey', 'dqawtet', 'egreg']
choice1 = random.randint(0, len(list1))
print(list1[choice1])
print(list2[choice1])

有时会出现此错误:

  

python IndexError:列表索引超出范围

造成这种情况的原因是什么?

1 个答案:

答案 0 :(得分:1)

长度为5的列表的有效列表索引是0,1,2,3,4。您正在从0,1,2,3,4,5中选择一个随机数。当随机数为5时,您的索引超出范围,正如错误消息所示。

为防止这种情况发生,您需要一个0到4之间的随机数。只需更改为:

choice1 = random.randint(0, len(list1) - 1)

从列表长度中减去1是获取数组中最后一个元素的一种非常常见的模式。

要自行调试此类内容,您应该print(choice1)尝试print(list1[choice1])之前查看索引可能超出范围的原因。