我正在尝试从我的数组中选择一个随机元素。

然而,有时我会得到一个索引越界错误,即使我通过将 1 添加到索引的最大值来计算从 0 开始的数组。

from random import randint

names = ['Sam', 'Paul', 'Mark', 'Simon', 'Sean', 'Samantha', 'Ellen']
random_name = names[randint(0, len(array)+1)]

print(random_name)

有时我只会得到一个索引越界错误?

最佳答案

您需要从 1 的长度中减去 1 而不是 添加 names ,因为在 python 中,列表的初始元素被分配了索引 0 :
random_name = names[randint(0, len(names)-1)]
替代解决方案

但是,对于这种特殊情况,我认为使用 random.choice 会更合适,特别是因为您在使用它时根本不必担心列表索引:

>>> import random
>>> names = ['Sam', 'Paul', 'Mark', 'Simon', 'Sean', 'Samantha', 'Ellen']
>>> random.choice(names)
'Mark'

关于python - 从数组中随机选择一个元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48255710/

10-13 01:57