random
今回はランダムに数値を取得したり、リストの中の要素を取得する方法を解説していきます。
その際に用いるモジュールが「random」というその名の通りのモジュールです。
このrandomモジュールに関して、いくつか段階を踏んで解説をしていきたいと思います。
ということでまずはこのrandomモジュールをインポートしましょう。
<セル1>
import random
実行結果
まずはインポートしただけなので、実行しても何も起こりません。
それでは始めていきましょう。
random.randint(開始, 終了):ランダムな整数値を取得
まずは整数を一つ、ランダムに取得してみましょう。
その場合には、「random.randint(開始, 終了)」を用います。
このrandint()の括弧内に入れた開始と終了の数字の間(終了の値も含む)でランダムな整数値を取得できます。
<セル2>
print(random.randint(10,100))
実行結果
22
上記の場合では10から100までの間で一つ、ランダムな整数値を取得できます。
もちろんランダムな数字を取得する方法なので、実行しても同じ数字が得られるとは限らないので注意してください。
random.randrange(開始, 終了, ステップ):ランダムな整数値を取得
ある範囲内の数値の中からランダムに整数値を取得したい時、特にある範囲内の数値のうち、偶数値や奇数値、飛び飛びの数値群からランダムに整数値を取得したい時には、「random.randrange(開始,終了,ステップ)」を用います。
基本的にはrangeと使い方が似ています。
ということでまずは終了値のみ指定した形です。
<セル3>
print(random.randrange(100))
実行結果
65
0から99までの数値から1つランダムな整数値を取得しています。
先ほどのrandom.randint()とは異なり、終了値は含みませんので注意してください。
次に開始値と終了値を指定してみましょう。
<セル4>
print(random.randrange(10, 100))
実行結果
70
この場合は10から99までの数値からランダムで一つ整数値を取得します。
次はステップも指定してみます。
<セル5>
print(random.randrange(10,100,2))
実行結果
50
この場合は10から99までの整数値から一つおきの整数値のリストが作られ、その中からランダムで一つ値が取得されます。
今回の場合は10から始まっていますので、一つおきとなると次は12、その次は14となるため、10から99までの中の偶数値から一つランダムで取得されるということになります。
ということで奇数値にしたい場合は開始値を奇数にして、ステップを2にすれば良いことになります。
random.uniform(開始値, 終了値):ランダムな小数値を取得
次はある範囲内からランダムな少数値を取得する方法です。
その場合には「random.uniform(開始値, 終了値)」を用います。
<セル6>
print(random.uniform(10,100))
実行結果
65.42418078062788
random.random():0から1の間でランダムな小数値を取得
次は一番基本そうに見える「random.random()」です。
こちらは0から1の間でランダムな小数値を取得する方法です。
特に引数は必要ありません。
<セル7>
print(random.random())
実行結果
0.389212523662539
random.choice(リスト):リスト内からランダムに一つ要素を取得
ここまではランダムな数値を取得する方法でした。
しかしすでに何らかのリストがあり、そこからランダムに要素を取得したいこともあることでしょう。
そんな時は「random.choice(リスト)」を用います。
<セル8>
test = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
print(random.choice(test))
実行結果
i
random.sample(リスト, 個数):リスト内から重複せずにランダムに複数の要素を取得
リストの中から複数の要素を重複せずにランダムに取得するには、「random.sample(リスト, 個数)」を使用します。
<セル9>
print(random.sample(test, 3))
実行結果
['h', 'b', 'e']
random.choices(リスト, k=個数):リスト内から重複ありでランダムに複数の要素を取得
リストの中から複数の要素を重複を許可しつつランダムに取得するには、「random.choices(リスト, k=個数)」を使用します。
<セル10>
print(random.choices(test, k=3))
実行結果
['b', 'b', 'c']
データ解析等ではなかなかランダムに値を取得するということはないですが、ゲームやツールを作る際にはランダムを用いることもあることでしょう。
そんな時のためにランダムに数値やリスト内の要素を取得する方法があると頭の片隅にでも入れておくといいかと思います。
私も何度も使っているのですが、そうそう頻繁に出番があるわけではないので、すぐに忘れてしますモジュールの一つだったりしますので。
次回はfor文のちょっと高度な使い方として、enumerate関数、リスト内包表記を紹介します。
ではでは今回はこんな感じで。
コメント