PythonでString型の文字を分解して五十音順に並び替えするオシャレな方法

今回はPythonでString型の文字を分解して五十音順に並び替えするオシャレな方法についてご紹介いたします。

実務で使う機会は少ないかもしれませんが、プロコンなどの際に覚えておくと役に立つのではないでしょうか。



PythonでString型の文字を分解して五十音順に並び替えするオシャレな方法

結論から言うと、
''.join(sorted('変形したい文字'))
とするだけで簡単に実装ができます。

例として「あかさかさかす」という文字を分解して五十音順にしたいとします。
次のソースを用意します。

実行結果は次のようになります。

ものすごく簡単に実装できますね。

なぜこれだけでString型の文字を分解して五十音順に並び替えすることができるのか

なぜ簡単にString型の文字を分解して五十音順に並び替えすることができるのかというと、sortedとjoinという関数の機能を存分に利用しているからです。

sortedに引数としてStringを渡すと、五十音順に分解してリスト型として値を返します。
上記の例では、sortedにString型の「あかさかさかす」という文字を渡すことで
[‘あ’, ‘か’, ‘か’, ‘か’, ‘さ’, ‘さ’, ‘す’]
というlist型が返ってきます。

あとはjoin関数を使ってこれらをくっつけるだけです。
joinは文字列を結合させる関数ですが、空文字を表すシングルクォート二つを使って、
''.join
とすることでlist型の
[‘あ’, ‘か’, ‘か’, ‘か’, ‘さ’, ‘さ’, ‘す’]
を合体させて「あかかかささす」というString型の文字にすることができるのです。

関数二つで難しいことが一気にできるので芸術性を感じますね。

終わりに

今回はPythonでString型の文字を分解して五十音順に並び替えするオシャレな方法についてご紹介いたしました。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いいたします。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。






Python

Posted by ちこ