pythonでランダム文字列(アルファベット + 数値)を作ってみましょう。
実装
ランダム文字列を生成するコードを以下に記載します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# sample_uuid.py import random import string ''' >>> string.digits '0123456789' >>> string.ascii_lowercase 'abcdefghijklmnopqrstuvwxyz' ''' CHARS = string.ascii_lowercase + string.digits # 取得文字数 UUID_LENGTH = 20 def get_uuid(chars=CHARS, length=UUID_LENGTH): return "".join(random.choice(chars) for _ in range(length)) if __name__ == '__main__': print(get_uuid()) print(get_uuid()) print(get_uuid()) |
実行
プログラムを実行してみます。
1 2 3 4 5 |
python sample_uuid.py tj8a9lbb00n2lu3ejjhy 0453by1jnz8ic5nu2oxq 5u251urwo0p77vntczl1 |
解説
非常に短いコードで、20文字(数値 + 文字列)のランダムな値を取得できました。
コメントに記述しましたが、stirngsパッケージのdigitsとascii_lowercaseで数値+アルファベット文字列を取得することができます。
random.choiceは、任意の文字列からランダムに値を取得できるメソッドです。
1 2 3 4 5 6 7 |
>>> random.choice(string.digits) '3' >>> random.choice(string.digits) '9' >>> random.choice(string.digits) '7' |
このランダム文字列は、UUIDとしても利用することができそうですね。ただし、いくらランダムな文字列と言えど、100%一意の文字列を生成できるわけではないので、そこはお気を。
「UUID_LENGTH」変数にはUUIDの文字列指定ができるので、この値が大きくなればなるほど、一意の文字列が生成できます。
おわりに
以上がPythonによるランダム文字列の生成方法でした。
まぁ、UUIDモジュールはpythonに組み込まれているんですけどね^^;
1 2 3 |
>>> import uuid >>> uuid.uuid4() UUID('5e19fa80-f4c0-4d05-a3f0-c93f1c10f029') |
しかし、お遊びにはちょうど良いですよね!
ランダム文字列を作り出す方法は本記事以外の方法も色々あると思うので、「これは!」といった情報があれば、コメントいただければ嬉しいです^^
それでは、また!
コメントを残す
コメントを投稿するにはログインしてください。