Pythonでダミーデータを作成するために、ランダムな文字列を生成したいとき。
概要
候補となる文字列リストを作成し、その中からランダムで必要な数だけ取り出して生成する。
実装
import random
import string
# 数値、アルファベット小文字、アルファベット大文字を取得して連結する
# 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
string_seed = string.digits + string.ascii_lowercase + string.ascii_uppercase
# ランダム文字列のリストを生成する(ここでは要素が10個のリスト)
# ['l', 'U', 'a', '2', '8', 'z', 't', 'n', 'H', 'q']のようなリストが取得できる
random_string_list = random.choices(string_seed, k=10)
# 文字列のリストを空文字で結合する
print(''.join(random_string_list))
リストの中からランダムで1つ選択するrandom.choice()
とリスト内包表記を利用して
ランダム文字列を生成している記事が多いが、
実はrandom.choices()
を利用するとランダムで複数選択することができる。
文字列一覧は自分で記載しても良いが、stringライブラリを使うと簡潔に表現できる。
参考:https://docs.python.org/ja/3/library/string.html
まとめ
- stringライブラリを用いて文字列一覧を取得
random.choices()
を使って文字列一覧から複数の値をランダムで取得- リストを空文字結合する