Python

Python 乱数・ランダムな操作まとめ

乱数を作成する

import random

# 1以上、42以下
random.randint(1, 42)

# 0.0以上1.0未満
random.random()

0から9の乱数を生成する

from random import randrange

print(randrange(10))

任意の個数の乱数を含む配列を作成する

import random

# 1以上、42以下の乱数を10個含む配列を作成(重複なし)
data = random.sample(range(1, 42), 10)
print(data)

リストからランダムに取り出す

import random

# ランダムに取り出す
random.choice([0, 1, 2, 3]) 

# n回取り出す(重複あり):サイコロをn回のように
[random.choice([1, 2, 3, 4, 5, 6]) for _ in range(5)]
# (Python3.6から) n回取り出す(重複あり):サイコロをn回のように 
random.choices([1, 2, 3, 4, 5, 6], k=5)

# n回取り出す(重複なし):ビンゴのように
random.sample([1,2,3,4,5,6], 5)

リストの要素をシャッフルする

import random

l =[1, 2, 3, 4, 5, 6]
random.sample(l, 6) #新たにリストを作って返す
random.shuffle(l) #直接入れ替える

ランダムなn桁の文字列を生成

import random

# a-z, A-Z, 半角数字
str_list = [chr(i) for i in range(97, 97+26)] + [chr(i) for i in range(65, 65+26)] + [chr(i) for i in range(48, 48+10)]

c_count = 16
"".join([random.choice(str_list) for x in range(c_count)])

その他