[Python]繰り返しのないランダムなリストの作成

Pythonでランダムなリストを作成する方法

Pythonにはランダムなリストを作成するために、randomモジュールが用意されています。randomモジュールには、ランダムな数値を生成する関数やランダムなシーケンスを操作する関数が含まれています。

randomモジュールのimport方法

randomモジュールを使用するには、以下のようにimport文を記述します。

import random

random.sampleの使用方法

random.sampleは、シーケンスから指定された数の要素をランダムに取得する関数です。繰り返しのないランダムなリストを作成する場合には、この関数を使用すると便利です。

random.sampleの使用方法は以下の通りです。

random.sample(シーケンス, 取得する要素数)

例えば、1から10までの整数のリストから、3つの要素をランダムに取得する場合には、以下のように記述します。

import random
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
random_list = random.sample(numbers, 3)
print(random_list)

出力結果は以下のようになります。

[9, 8, 1]

random.shuffleの使用方法

random.shuffleは、シーケンスをランダムにシャッフルする関数です。シャッフルされたシーケンスは元のシーケンスとは異なる順番で要素が並びます。

random.shuffleの使用方法は以下の通りです。

random.shuffle(シーケンス)

例えば、1から10までの整数のリストをランダムにシャッフルする場合には、以下のように記述します。

import random
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
random.shuffle(numbers)
print(numbers)

出力結果は以下のようになります。

[2, 8, 3, 1, 10, 9, 5, 7, 6, 4]

繰り返しのないランダムなリストの作成例

random.sampleとrandom.shuffleを組み合わせることで、繰り返しのないランダムなリストを作成することができます。

以下は、1から10までの整数のリストから、5つの要素をランダムに取得してシャッフルした繰り返しのないランダムなリストを作成する例です。

import random
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
random_list = random.sample(numbers, 5)
random.shuffle(random_list)
print(random_list)

出力結果は以下のようになります。

[9, 10, 4, 2, 8]

ランダムなリスト作成時の注意点

random.sampleを使用して、取得する要素数がシーケンスの要素数以上になる場合、エラーが発生します。

また、random.shuffleはシーケンス自体を変更するため、元のシーケンスの順番を変更したくない場合には、シーケンスのコピーを作成してから使用する必要があります。

まとめ

Pythonのrandomモジュールを使用して、繰り返しのないランダムなリストを作成する方法を紹介しました。random.sampleとrandom.shuffleを組み合わせることで、簡単に繰り返しのないランダムなリストを作成することができます。