60 of 151 menu

randomモジュールのsampleメソッド

randomモジュールのsampleメソッドは、 シーケンスからランダムに要素を抽出します。 メソッドの第一引数にはシーケンスを、 第二引数にはランダムに選択したい要素の数を指定します。

第三のオプションのキーワード引数kで、 繰り返しのための要素のリストを設定できます。 これにより、指定した要素が選ばれる確率を高めることができます。 この第三引数はPythonのバージョン3.9以降でのみ追加されたことに注意してください。

構文

import random random.sample(シーケンス, 要素数, [k=繰り返し])

リストからランダムに3つの要素を取得してみましょう:

lst = [1, 2, 3, 4, 5] print(random.sample(lst, 3))

コードの実行結果:

[2, 1, 5]

タプルからもランダム要素のサンプリングを試してみましょう:

tpl = (1, 2, 3, 4, 5) print(random.sample(tpl, 2))

コードの実行結果:

[3, 2]

range関数が生成するシーケンスからも要素を選択できます:

print(random.sample(range(0, 10), 3))

コードの実行結果:

[0, 8, 9]

次に、リストを用意し、countsパラメータを使って リスト内の各要素の繰り返し回数を指定してみましょう。 この場合、最初の要素を2回、2番目の要素を3回、 3番目の要素を4回繰り返すことにします。 また、抽出する要素数を指定するためにkパラメータ名を明示する必要があります:

lst = [1, 2, 3] print(random.sample(lst, counts=[2, 3, 4], k=3))

このコードは以下と等価です:

lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # 事実上このようなリスト print(random.sample(lst, 3))

今度は集合から要素を取得してみましょう:

st = {1, 2, 3, 4, 5} print(random.sample(st, 2))

以下のような警告が返されます:

[5, 2] DeprecationWarning: Sampling from a set deprecated since Python 3.9 and will be removed in a subsequent version. print(random.sample(st, 2))

これは、Pythonバージョン3.9以降では、 集合からのサンプリングが想定されていないためです。

関連項目

  • choiceメソッド (randomモジュール)、
    シーケンスからランダムな要素を1つ返します
  • randomメソッド (randomモジュール)、
    疑似乱数を返します
日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否