簡體   English   中英

從數組中選擇一個隨機元素

[英]Select a random element from an array

我試圖從我的數組中選擇一個隨機元素。

但是,有時我得到一個索引越界錯誤,即使我通過在索引的最大值加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)

我有時只得到索引超出范圍的錯誤?

為什么不只是選擇?

import random

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

print(random_name)

您需要從names的長度中減去 1 ,而不是添加 1 ,因為在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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM