Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

List/Tupleからランダム個数の要素をとる

List/Tupleからランダム個数の要素をとる方法です。

実際のところ

標準ライブラリのrandomについている関数、choiceとchoicesを使います。
choiceは一個、choicesはkの値の個数分とってくれます。

stringライブラリの定数を使って文字列を生成。
それを使って、実験してみます。

from random import choice
from random import choices

alphabet = string.ascii_letters + string.digits
# 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'


choice(alphabet)
# 'L'

choices(alphabet,k=4)
# ['G', 'Z', '8', 'q']
choices(alphabet,k=4)
# ['l', 'Q', 'k', 'E']

choices((1,1,2,4), k=2)
# [1, 4]

これを組み合わせる事で、ランダム文字列を作る事ができます。

"".join(choice(alphabet) for i in range(8))
'nuSXftUI'