【Python】ランダムな文字列を生成する

python-logo Python

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()を使って文字列一覧から複数の値をランダムで取得
  • リストを空文字結合する
タイトルとURLをコピーしました