pythonで文字列の並べ替え

プログラミング

“japanese”の並び方をテキストファイルに書き出し

今回は、文字列を指定して、

その文字列の並べ替えを、すべて書き出すプログラムを作成します。

例として「japanese」という文字列を使用します。


「japanese」という文字列の並び方をすべて出力します。

プログラムコードは↓のようになります。

import itertools #itertools の読み込み
data=[]                                  #順列の格納リスト作成

file=open('data.txt','w',encoding='utf_8')
for x in itertools.permutations(['j','a','p','a','n','e','s','e'],r=8):
    a = ''                               #これだと重複文字列が含まれる
    for i in range(len(x)):              #permunation は順列の意味
            a += x[i]                    #’ ’を含まない文字列に組み替える
    data.append(a)                       #data に文字列を追加
data = sorted(set(sorted(data)))         #setで重複する文字列を消去
print(len(data))                         #順列の数を表示
for i in range(len(data)):               #sortはリスト内が文字列なら辞書順に並べる
    file.writelines(data[i]+'\n')        #1文字ずつファイルに出力する
file.close()                             #ファイルを閉じる

↑を実行してみると、

このように表示されます

これは、「japanese」という、8文字の並べ替えの種類数を表示してくれます

一応確認してみますが、

答えが一致しているので、

正しく演算されていることが分かります


それに加えて、このプログラムファイルが保存されているフォルダに

「data.txt」というテキストファイルが追加されています。

この「japanese並べ替え.py」という名のプログラムファイルは

「一時的3」という名のフォルダに保存しておいたので、

「一時的3」という名の同フォルダに「data.txt」が書き出され保存されています


「data.txt」を開いてみると、

↑のように表示されています。

「j・a・p・a・n・e・s・e」という文字列を辞書順に並べてくれています。

コメント

タイトルとURLをコピーしました