例如:
list1 = [1,2,3,4,5,6]
我想从这个列表中获取2个随机数并将它们加在一起:
例如3 2.
最佳答案 对于唯一选择(无需替换的采样),您可以使用
random.sample
从列表中选择多个随机元素并使用内置的
sum
.
>>> list1 = [1,2,3,4,5,6]
>>> from random import sample
>>> sum(sample(list1, 2))
7
如果您尝试获取大于列表(或更一般地,填充)大小的样本,则会引发ValueError.
>>> sum(sample(list1, len(list1) + 1))
File "D:\Anaconda\lib\random.py", line 315, in sample
raise ValueError("Sample larger than population")
ValueError: Sample larger than population
对于非唯一选择(替换采样),对于小样本的简单方法只需重复调用random.choice
即可获得所需的任何样本大小.
>>> from random import choice
>>> sum(choice(list1) for _ in range(2))
6
显然,当采样替换时,样本大小可能大于人口的大小.
>>> sum(choice(list1) for _ in range(1000))
3527