除了列表中的给定项目之外,从列表中随机选择项目的最简单方法是什么?
例子:
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
根据列表的大小,一个可能比另一个更快。试试看!
关于python - 如何在排除一种可能性的情况下随机选择列表中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66933529/