複数の要素からランダムに選択する
複数の要素からランダムにひとつ選択するには、random.choice()関数を使います。
random関数は、randomライブラリーをインポートする必要があります。
選択する要素には、リスト、タプル、文字列などが使えます。
random.choice(複数要素)
リストの中からランダムでひとつの要素を選択するには、以下のようにします。
実行例
> random.choice([1,2,3])
2
文字列の中からランダムでひとつの文字を選択するには、以下のようにします。
実行例
> random.choice("ABC")
'C'
連続した整数の中からひとつの整数をランダムで選択することもできます。
実行例
> random.choice(range(100))
59
重複なしで複数の要素をランダムに選択する
random.choice()関数は、選択する要素がひとつだけでしたが、random.sample()関数を使うと複数の要素をランダムで選択できます。
選択された要素はリストで返されます。
random.sample(複数要素, k=選択数)
複数の要素から3つの要素をランダムで選択するには、以下のようにします。
実行例
> random.sample([1,2,3,4,5], k=3)
[2, 3, 4]
ランダムで選択する要素に重みをつける
random.choices()関数を使うと、ランダムで選択する要素に相対的な重みをつけることができます。
random.choices()関数は、選択する要素を複数選択することもできますが、random.sample()関数とは違って、選択される要素は重複する場合があります。
重みは複数要素の数と同じ要素数のリストまたはタプルにしなければなりません。
なお、kオプション、weightsオプションは省略することができます。
省略した場合は、選択数は1、重みは同じ確率になります。
random.choices(複数要素, k=選択数, weights=重み)
リストの中から先頭の要素だけを他の要素より相対的に選ばれやすくするには、以下のようにします。
random.sample()関数と同じように、リストで要素が返されます。
実行例
random.choices([1,2,3], weights=[10,1,1])
[1]