我需要生成随机数1 - 3。我得到的错误是
IndexError:列表索引超出范围
我的代码如下:
weaponList = [0,1,2]
weapon2 = weaponList[random.randint(0,3)]
答案 0 :(得分:0)
weapon2 = weaponList[random.randint(0,2)]
应该是行 randint(int1,int2)是包含的,因此可以调用这两个数字。
指数从0开始,调用weaponList [0]会得到0,这是第0个索引。
答案 1 :(得分:0)
Python列表是zero indexed。在您的示例中:
>>> weaponList = [0,1,2]
>>> weaponList[0]
0
>>> weaponList[1]
1
>>> weaponList[2]
2
>>> weaponList[3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
因此,您必须选择0到2 random.randint(0,2)
之间的数字,random.randint
is inclusive。
@Tadhg McDonald-Jensen提出了一个更清洁的解决方案,为未来的读者添加。
weapon2 = random.choice(weaponList)
这会从weaponList
中选择一个随机元素,所以你甚至不必为指数而烦恼。