2017-07-03 12 views
0

大きすぎると、リスト全体を選択して、我々はランダムになるようにリストからサンプルできる:サンプルサイズはリストよりも大きい場合にランダムなサンプルサイズは、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は、リスト全体を選択できるようになりますオプションがありますか?

答えて

5

そこには、このようなオプションは、(help(random.sample)を参照)ではありませんが、あなたは常にあなたが渡すかを制御することができます

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

。ありがとう! –

1

のようなもの:多くの意味を作る

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

'random(l、...)'もリストを再シャッフルしますが、式はそうしません。 – DyZ

+0

シャッフルする必要はありませんが、簡単に達成できます。 –

関連する問題