2024年6月16日日曜日

Pythonでランダムな文字列生成

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 件のコメント:

コメントを投稿

NBA選手シーズンごとの平均リバウンド

NBA選手のシーズン当たりのリバウンド シーズン毎の得点に続き、シーズン毎のリバウンドを可視化してみます。 外れ値を省くために、1シーズン40試合以上出場した選手で構成しています。 #! /usr/bin/env python import numpy as np imp...