执行此代码时:
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:列表索引超出范围
造成这种情况的原因是什么?
答案 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])
之前查看索引可能超出范围的原因。