pythonでひらがなやカタカナの一覧を作成するスマートな方法を考えてみたので紹介です。
きっかけは、ある所でcsvファイルにあ、い、う、え、お、…と一行一文字書き並べたファイルを読み込んでいるコードを見かけたことです。
この記事でリストを作成する方法を書きますが、その前に本当にひらがな、カタカナのリストが必要なのかということは考えた方が良いと思います。
例えばある文字列がひらがなのみで成り立っているかどうかとか、カタカナが含まれているかと言った判定を行うのであれば、正規表現を使った方がよいです。
リストを準備して、for文で回して一文字ずつチェックするような効率が悪い処理を実装するべきではありません。
正直な所、このリストが必要になる場面は結構珍しいと思います。
それでもひらがなカタカナのリストが必要だという場合は、
ひらがな、カタカナにそれぞれ連続した文字コードを割り当てられていることを利用して生成するのが効率がいいのではないかと思います。
こちらも参照:pythonで文字と文字コードの相互変換
具体的には次のようなコードで作成できます。
生成結果は結合してprintしました。
hiragana = [chr(i) for i in range(ord("ぁ"), ord("ゖ")+1)]
print("".join(hiragana))
# ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんゔゕゖ
katakana = [chr(i) for i in range(ord("ァ"), ord("ヺ")+1)]
print("".join(katakana))
# ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶヷヸヹヺ
“あ”より”ぁ”の方が先であること、 最後に +1 しておかないと末尾の文字が抜けることなどに注意です。
“ゐ”や”ゑ”、”ヸ”、”ヹ”、”ヺ”などはいらないって場合もあると思うので必要に応じて微調整してください。
もしかしたら”゛”(濁点)や”゜”(半濁点)、その他”、”や”。”などの句読点なども必要だという場面もあるかもしれません。
ord(“ぁ”)などとせずに、数字で指定しても結果は同じになりますが、
意味が明確になるので、ord(“ぁ”)の方が良いと思います。
参考
hiragana = [chr(i) for i in range(12353, 12439)]
print("".join(hiragana))
# ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんゔゕゖ
katakana = [chr(i) for i in range(12449, 12539)]
print("".join(katakana))
# ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶヷヸヹヺ