我正在尝试从我的数组中选择一个随机元素。
然而,有时我会得到一个索引越界错误,即使我通过将 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/