修复列表超出范围错误。蟒蛇

时间:2016-06-17 20:42:44

标签: python list python-3.x random int

我需要生成随机数1 - 3。我得到的错误是

  

IndexError:列表索引超出范围

我的代码如下:

weaponList = [0,1,2]
weapon2 = weaponList[random.randint(0,3)]

2 个答案:

答案 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中选择一个随机元素,所以你甚至不必为指数而烦恼。