Loading [MathJax]/extensions/tex2jax.js

2024年6月16日日曜日

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

Pythonでランダムな文字列を生成する関数です。 

Pythonでデータフレームなどを扱う際、とりあえずダミーデータなどで試したい時に、適当な文字列があればと思い作りました。


  1.  #!/usr/bin/env python  
  2. # -*- coding: utf-8 -*-  
  3.   
  4. import random  
  5. import string  
  6.   
  7. # numは生成する数、strsはその文字列からランダムに選択、lengthは一つの文字列の長さ  
  8. def word_generate(num, strs=string.ascii_lowercase, length=5):  
  9.     words = []  
  10.     for i in range(num):  
  11.         word = ""                        # ①  
  12.         for j in range(length):          # ①  
  13.             word += random.choice(strs)  # ①  
  14.         words.append(word)  
  15.     return words  
  16.   
  17. print("[word generate]")  
  18. print("")  
  19.   
  20. #アルファベット小文字  
  21. let = string.ascii_lowercase  
  22.   
  23. print(let)  
  24. print("")  
  25.   
  26. words1 = word_generate(5)  
  27. print(words1)  
  28. print("")  
  29.   
  30. #よく使われる上位文字  
  31. let2 = 'etaonirsh'  
  32.   
  33. words2 = word_generate(10, let2)  
  34. print(words2)  
  35. print("")  
  36.   
  37. words3 = word_generate(5, let2, 8)  
  38. print(words3)  
  39. print("")  
  40.    

結果:

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

コメントを投稿

Pythonで地図空間データを扱う⑤

ベースの地図が出来た所で、他のデータを被せてみます。 国土地理院の  500mメッシュ別将来推計人口データ  を使用します。 同じく神奈川県のデータ  500m_mesh_suikei_2018_shape_14.zip をダウンロードします。 ベースの地図データと同じ場所に展開...