エンジニアを目指す初学者に向けて、わかりやすく解説したブログです。
サイトをリニューアルしました

【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ライブラリを使うと簡潔に表現できる。

参考:

まとめ

  • stringライブラリを用いて文字列一覧を取得
  • random.choices()を使って文字列一覧から複数の値をランダムで取得
  • リストを空文字結合する