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

时间:2017-07-03 20:29:32

标签: python

在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选择整个列表的选项?

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

类似的东西:

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