如果随机样本量太大,请选择整个列表



在 Python 中,我们可以从列表中随机抽样,如下所示:

>>> import random
>>> l = [1,2,3]
>>> random.sample(l,2)
[2, 3]

但是,如果样本数量大于列表,则会返回错误:

>>> random.sample(l,4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/random.py", line 315, in sample
raise ValueError("Sample larger than population")
ValueError: Sample larger than population

是否有一个选项允许random.sample在样本量大于列表时选择整个列表?

没有这样的选项(见help(random.sample)(,但你总是可以控制你传递的内容:

random.sample(l, min(len(l),4))

像这样:

random.sample(l) if len(l)<4 else random.sample(l, 4)

最新更新