【Python】文字列をランダムに並び替えるrandom.shuffle()関数
Pythonで文字列をランダムに並び替えるrandom.shuffle()関数について解説します。
文字列をランダムに並び替えるプログラム
コード例
# 文字列をランダムに並び替える
import random
s = input('文字列 : ')
lst = list(s) # 文字列をリストに変換
random.shuffle(lst) # リストの要素をランダムに並び替える
message = ''.join(lst) # リストを文字列に戻す
print(message)
実行結果
文字列 : あいうえおかきくけこさしすせそ
くえかおきけうしこいすさせあそ
random.shuffle()関数
random.shuffle()関数はリストの要素をランダムに並び替えることができます。
randomモジュールの一部なのでimport文でインポートしておく必要があります。
この関数は引数として渡されたリスト参照から直接リストを変更しています。
そのためlst = random.shuffle(lst)ではなくrandom.shuffle(lst)という文になります。
なおrandom.shuffle()関数で文字列をランダムに並び替えるにあたって準備などが必要になります。
文字列をリストに変換する
input関数で入力された文字列をlist関数でリスト化しています。
random.shuffle()関数はリストに対して適応できます。
これは文字列のstr型は変更不能(イミュータブル)だからです。
join関数で文字列に戻す
random.shuffle()関数によってリストlstの要素はランダムに並び替えられました。
ただしリスト内にはランダムに並び替えられた文字の要素が並んでいるにすぎません。
それらを文字列として戻すためにjoin関数で1文字ずつ連結させて文字列に戻していきます。