Pythonでランダムな文字列を生成する関数です。
Pythonでデータフレームなどを扱う際、とりあえずダミーデータなどで試したい時に、適当な文字列があればと思い作りました。
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import random
- import string
- # numは生成する数、strsはその文字列からランダムに選択、lengthは一つの文字列の長さ
- def word_generate(num, strs=string.ascii_lowercase, length=5):
- words = []
- for i in range(num):
- word = "" # ①
- for j in range(length): # ①
- word += random.choice(strs) # ①
- words.append(word)
- return words
- print("[word generate]")
- print("")
- #アルファベット小文字
- let = string.ascii_lowercase
- print(let)
- print("")
- words1 = word_generate(5)
- print(words1)
- print("")
- #よく使われる上位文字
- let2 = 'etaonirsh'
- words2 = word_generate(10, let2)
- print(words2)
- print("")
- words3 = word_generate(5, let2, 8)
- print(words3)
- print("")
結果:
abcdefghijklmnopqrstuvwxyz
['lpiil', 'akoqp', 'bstzb', 'cteta', 'alyvd']
['ootot', 'sseni', 'nnntn', 'nhieh', 'rhnon', 'rsiat', 'aostn', 'rsert', 'reern', 'oittn']
['iitniess', 'oinshhri', 'raseoino', 'eniohoht', 'iasrsntr']
①の部分をchoiceからchoicesに変え
word = "".join(random.choices(strs, k=length))
と書き換えても同じ結果になります。
0 件のコメント:
コメントを投稿