Python – リスト内のランダムな範囲の数値を生成する方法
Pythonでリスト内にランダムな範囲の数値を生成したい場合、リスト内包表記とrandomパッケージに含まれるrandrange()メソッドを組み合わせるのが一般的です。この記事では、その具体的な実装方法をサンプルコード付きで解説します。
サンプルコード
以下は、1から99までの範囲でランダムな整数を10個生成し、リストに格納する例です。
import random
my_result = [random.randrange(1, 100, 1) for i in range(10)]
print("結果:")
print(my_result)出力結果
結果: [40, 73, 58, 45, 68, 19, 86, 6, 15, 71]
コードの解説
まず、
import randomで必要な random パッケージを環境にインポートします。リスト内包表記を使って10回の繰り返し処理を行い、各ループで
randrange(1, 100, 1)メソッドを呼び出して、指定した範囲内のランダムな整数を生成します。引数の意味は次の通りです。第1引数が開始値(1)、第2引数が終了値(100・この値自体は含まれない)、第3引数がステップ幅(1)です。
生成されたリストは変数
my_resultに代入されます。最後に
print()関数で結果をコンソールに出力します。実行するたびに出力内容は変わります。
補足:randrange() のポイント
randrange(start, stop)のように引数を2つだけ指定することも可能です。ステップ幅を変更すると、例えば偶数のみ(
randrange(0, 100, 2))といった条件での乱数生成にも対応できます。同様の目的には
random.randint(a, b)も使えますが、こちらは終了値を含む点がrandrange()と異なります。
-
Pythonでリストの要素をランダムにシャッフルする方法
random.shuffle()関数を使ったリストのシャッフルPythonの標準ライブラリにはrandomモジュールが用意されており、その中のshuffle()関数を使うと、シーケンス(リストなど)の要素をランダムな順序に入れ替えることができます。重要なポイントとして、shuffle()は元のリストを直接(in-place)並べ替えます。戻り値はNoneであるため、シャッフル後の結果を確認するには、元のリスト変数そのものを参照します。基本的な使い方>>> import random >>> l1 = [aa, 22, ff, 15, 90, 5.55] &g
-
【Python入門】リストに存在しない乱数を選択・生成する方法
リストに含まれない乱数を選択する基本の考え方 Pythonで「指定したリストに含まれていない乱数」を取得したい場合、最もシンプルな方法は、範囲内の乱数を繰り返し生成し、その値がリストに存在しないことを確認できた時点で採用するというアプローチです。 乱数の生成には標準ライブラリ random モジュールの randrange() 関数を使用し、リストとの重複チェックにはメンバーシップ演算子の not in を使います。 実装例:while文で条件を満たすまで繰り返す import random l1 = [2, 4, 7] while True: x = random.randra