Python Random モジュール

randomモジュールは、ランダムな要素を生成できるようにする組み込みモジュールです。

import random

seed()

seedメソッドは、乱数ジェネレータを初期化するために使用されます。

# 再現性のある乱数を設定
random.seed(1)
random.random()
0.13436424411240122

シードを数値に設定すると、常に同じ乱数が返されます。

random.seed(1)
random.random()
0.13436424411240122
random.seed(1)
random.random()
0.13436424411240122
random.seed(1)
random.random()
0.13436424411240122
random.seed(1)
random.random()
0.13436424411240122
random.seed(1)
random.random()
0.13436424411240122

seedメソッドのデフォルト値は現在のシステム時刻であるため、常に異なる数値が生成されます。

# シードを設定せずに乱数を生成(システム時刻を使用)
random.random()
0.8474337369372327
random.random()
0.763774618976614
random.random()
0.2550690257394217

randint()

random.randint(start: int, stop: int)

このメソッドは、指定された開始パラメータと停止パラメータの間の乱数を返します。

random.randint(1, 5)
3
random.randint(1, 5)
2
random.randint(1, 5)
5
random.randint(1, 5)
1
random.randint(1, 5)
3
random.randint(1, 5)
1

choice()

choiceメソッドは、listsetstrなどのイテラブルからランダムに選択された要素を返します。

random.choice([1, 2, 3, 4])
1
random.choice([1, 2, 3, 4])
2
random.choice([1, 2, 3, 4])
4
random.choice([1, 2, 3, 4])
4

shuffle()

shuffleメソッドは、イテラブルを受け取り、それをシャッフルします。

my_list = [1, 2, 3, 4]

# リストをインプレースでシャッフル
random.shuffle(my_list)
my_list
[1, 4, 3, 2]
random.shuffle(my_list)
my_list
[2, 4, 3, 1]
random.shuffle(my_list)
my_list
[4, 2, 3, 1]

sample()

random.sample(iterable, k: int)

sampleは、イテラブルからランダムに選択された要素を含むリストを返します。返される要素の数はkパラメータと等しくなります。

# リストから k 個の要素をランダムにサンプリング
random.sample([1, 2, 3, 4], 1)
[3]
random.sample([1, 2, 3, 4], 2)
[3, 4]
random.sample([1, 2, 3, 4], 3)
[4, 3, 2]
random.sample([1, 2, 3, 4], 4)
[1, 2, 4, 3]

random()

randomメソッドは、0.0 から 1.0 の間の乱数の浮動小数点数を返します。

random.random()
0.4143139993007743
random.random()
0.17300740157905092
random.random()
0.548798761388153
random.random()
0.7030407620656315

uniform()

uniformメソッドはrandintに似ていますが、浮動小数点数を返します。

random.uniform(1, 5)
3.697943322009309
random.uniform(1, 5)
2.498812082006561
random.uniform(1, 5)
2.7558465201782525
random.uniform(1, 5)
3.0337059529999273

関連リンク