除了列表中的给定项目之外,从列表中随机选择项目的最简单方法是什么?
例子:list = [2, 4, 5, 7, 9, 34, 54,]
如何随机选择除 7 之外的任何数字?
可能有两种主要策略:
从列表中删除异常,并从中采样:
import random
def choice_excluding(lst, exception):
possible_choices = [v for v in lst if v != exception]
return random.choice(possible_choices)
或者只是从完整列表中随机选择,只要获得禁止值(拒绝采样)就重试:
def reject_sample(lst, exception):
while True:
choice = random.choice(lst)
if choice != exception:
return choice
两者都会得到相同的结果(好吧,只要随机的结果相同......):
lst = [2, 4, 5, 7, 9, 34, 54]
choice_excluding(lst, 7)
# 9
reject_sample(lst, 7)
# 54
根据列表的大小,其中一个可能比另一个更快。尝试看看!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)