Python | リストからランダムな値をひとつ、または複数取得する方法

2023-02-26Python リスト,Python

Python | リストからランダムな値をひとつ、または複数取得する方法

Pythonの「random」モジュールのchoice()関数やsample()関数を利用してリストからランダムな値を取得する方法とサンプルコードを紹介しています。

確認環境

Windows11 ローカル
Python python-3.11.1

choice()関数でリストからランダムな値をひとつ取得する

Pythonでリストからランダムな値をひとつだけ取得するには「random」モジュールのchoice()関数を利用する事ができます。
choice()関数は第一引数に対象のリストを指定します。
choice()関数には取得する値の数を指定可能なオプション引数は用意されていません。
複数の値を同時に取得する場合はsample()関数が利用可能です。

サンプルコードでは以下の流れで初期を記述しています。

  1. 複数の値を持つリストを用意する
  2. choice()関数でリストを指定してランダムに値をひとつ取得する

以下のサンプルコードでは、指定したリストの値からランダムにひとつ取得しています、

import random

data_list = [60, 80, 10, 40, 50]

rand_data_list = random.choice(data_list)

print(rand_data_list)
# リストのデータからいずれかの値ひとつ

sample()関数でリストからランダムな値を複数取得する

リストからランダムな値を複数取得する場合は「random」モジュールのsample()関数を利用する事ができます。
choice()関数は第一引数に対象のリストを指定し、第二引数にランダムに取得する数を指定します。
この関数はランダムに取得した複数の値をリスト型で返します。

サンプルコードでは以下の流れで初期を記述しています。

  1. 複数の値を持つリストを用意する
  2. sample()関数でリストを指定してランダムに指定数分の値を取得する

以下のサンプルコードでは指定したリストから3つの値をランダムに取得しています。

import random

data_list = [60, 80, 10, 40, 50]

rand_data_list = random.sample(data_list, 3)

print(rand_data_list)
# [80, 50, 60](返り値の例)

sample()関数で第二引数に指定した取得数がリストの値の数より多いと「ValueError」を出力しますので注意が必要です。

import random

data_list = [60, 80, 10, 40, 50]

rand_data_list = random.sample(data_list, 7)

print(rand_data_list)
# ValueError: Sample larger than population or is negative