パイソン |リストからランダムな値を選択します
与えられたリストと私たちのタスクは、Python でさまざまな関数を使用してリストから要素をランダムに選択することです。リストから乱数を選択することは、ゲームを構築するとき、ランダムな範囲を選択するときなどに使用されることがあります。
例
Input: [2, 3, 4 , 5, 6 ] Output: 2 Explaination: The output we are getting is a random value from the input list
リストからランダムな値を選択する
この記事で説明する方法は次のとおりです。
- 使用する ランダム.チョイス()
- 使用する ランダム.randrange()
- 使用する ランダム.randint()
- random.random() の使用
- 使用する ランダム.サンプル()
- 使用する ランダム.チョイス()
- 使用する numpy.random.choice()
- リストから k 個のランダムな値を選択します
random.choice() を使用してリストからランダムな値を選択します
これ ランダム.チョイス() 関数は、リストからランダムなサンプリングを取得するように設計されています。 パイソン したがって、このタスクを達成するための最も一般的な方法は、 リスト 。
Python3
import> random> # initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 2> ,> 7> ]> # printing original list> print> (> 'Original list is : '> +> str> (test_list))> # using random.choice() to> # get a random number> random_num> => random.choice(test_list)> # printing random number> print> (> 'Random selected number is : '> +> str> (random_num))> |
出力:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 1
random.randrange() を使用してリストからランダムな値を選択します
の ランダム.randrange() メソッドは、指定された範囲で乱数を生成するために使用されます。範囲を 0 からリストの長さまで指定し、インデックスを取得して、対応する値を取得できます。
Python3
import> random> # initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 2> ,> 7> ]> # printing original list> print> (> 'Original list is : '> +> str> (test_list))> # using random.randrange() to> # get a random number> rand_idx> => random.randrange(> len> (test_list))> random_num> => test_list[rand_idx]> # printing random number> print> (> 'Random selected number is : '> +> str> (random_num))> |
出力:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 7
random.randint() を使用してリストからランダムな値を選択します
の ランダム.randint() は乱数を生成するために使用されますが、これは範囲内の任意の数値を生成するためにも使用でき、その数値を使用して、前述の手法と同様に、対応するインデックスの値を見つけることができます。ただし、範囲に 2 つの必須引数が必要であるという点が異なります。
Python3
import> random> # initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 2> ,> 7> ]> # printing original list> print> (> 'Original list is : '> +> str> (test_list))> # using random.randint() to> # get a random number> rand_idx> => random.randint(> 0> ,> len> (test_list)> -> 1> )> random_num> => test_list[rand_idx]> # printing random number> print> (> 'Random selected number is : '> +> str> (random_num))> |
出力:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 4
random.random() を使用してリストからランダムな値を選択します
の ランダム.ランダム() このメソッドは、0 ~ 1 の範囲の浮動小数点数を生成します。また、この関数を使用して、結果を乗算し、それを整数に型キャストして、整数インデックスを取得してから対応するインデックス値を取得することもできます。リストの値。
Python3
import> random> # initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 2> ,> 7> ]> # printing original list> print> (> 'Original list is : '> +> str> (test_list))> # using random.random() to> # get a random number> rand_idx> => int> (random.random()> *> len> (test_list))> random_num> => test_list[rand_idx]> # printing random number> print> (> 'Random selected number is : '> +> str> (random_num))> |
出力:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 7
random.sample() を使用してリストからランダムな値を選択します
Python には、と呼ばれる組み込み関数があります。 ランダム.サンプル()。 ランダム モジュールには、random.sample() 関数が含まれています。リストから複数の項目を選択する機能があります。
Python3
import> random> test_list> => [> 1> ,> 4> ,> 5> ,> 2> ,> 7> ]> print> (> 'Original list is : '> +> str> (test_list))> print> (> 'Random element is :'> , random.sample(test_list,> 5> ))> |
出力:
Original list is : [1, 4, 5, 2, 7] Random element is : [7, 4, 1, 5, 2]
random.choices() を使用してリストからランダムな値を選択します
の ランダムな選択肢 関数はランダム module() に格納されます。リストから多数の項目を選択したり、特定のシーケンスから 1 つの項目を選択したりするには、random.choices 関数を使用すると便利です。
Python3
import> random> test_list> => [> 11> ,> 44> ,> 55> ,> 22> ,> 77> ]> print> (> 'Original list is : '> +> str> (test_list))> print> (> 'Random element is :'> , random.choices(test_list, k> => 4> ))> |
出力:
the t is : [11, 44, 55, 22, 77] Random element is : [11, 11, 44, 77]
numpy.random.choice() を使用してリストからランダムな値を選択します
の numpy.random.choice() メソッドは、numpy の配列からランダムなサンプルを取得するために使用されます。リストを しこり 配列。
numpyをインポートしてリストを初期化します。リストを次のように変換します。 しこり 配列。 numpy.random.choice() メソッドを使用して、配列からランダムな値を選択します。選択した値を印刷します。
注記: pip install numpy を使用して numpy をインストールします
Python3
import> numpy as np> # Initializing list> test_list> => [> 2> ,> 3> ,> 4> ,> 5> ,> 6> ]> # Converting list to numpy array> test_array> => np.array(test_list)> # Using numpy.random.choice() to get a random number> random_num> => np.random.choice(test_array)> # Printing the random number> print> (> 'Random selected number is : '> +> str> (random_num))> |
出力:
Random selected number is : 5
時間計算量: 時間計算量は、 numpy.random.choice() メソッドは O(k) です。ここで、k は生成されるサンプルのサイズです。
空間の複雑さ: 空間の複雑さ numpy.random.choice() メソッドは O(n) です。ここで、n は配列のサイズです。
リストから k 個のランダムな値を選択します
ここでは、すべての要素をサイズ k のペアにグループ化しました。
Python3
import> random> def> select_random_Ns(l, k):> > random.shuffle(l)> > res> => []> > for> i> in> range> (> 0> ,> len> (l), k):> > res.append(l[i:i> +> k])> > return> res> > l> => [> 'G'> ,> 'E'> ,> 'E'> ,> 'K'> ,> 'S'> ,> 'F'> ,> 'O'> ,> 'R'> ,> 'G'> ,> 'E'> ,> 'E'> ,> 'K'> ,> 'S'> ]> print> (select_random_Ns(l,> 3> ))> |
出力:
[['G', 'G', 'R'], ['K', 'K', 'E'], ['O', 'F', 'E'], ['S', 'E', 'S'], ['E']]