「竹藪焼けた」、「磨かぬカガミ」とか後ろから読んでも同じになるものを「回文」と云います。
日本語のそれを辞書から探すのは辞書がそうなっていないので、英語辞書からそれを探すプログラムを作ってみます。
手順と条件は;
・単語だけの英辞書を探す(一行一単語、括弧やカンマなどの句読点が含まれないこと)
・それを全て変数に読み込む
・for文で頭から読込み、逆順でも同じスペルをリストに追加する
・print文で表示する
これを見ると、日本語で回文になる単語を探すのは一寸難しですね。
使用した英文単語はここにあります。
http://wordlist.aspell.net/12dicts/
この中にある’2of4brif.txt’を使いました。単語数は4万語位あります。
この辞書の中で5文字以上の回文に該当する単語は次の15単語でした。
runすると次のように表示されました。
Number of palindromes found = 15
civic deified kayak level madam minim radar redder refer rotor sagas sexes solos stats tenet
——————————————————————————————————
with open(‘2of4brif.txt’) as in_file: # withで始めるとcloseが不要 loaded_txt = in_file.read().strip().split(‘\n’) loaded_txt = [x.lower() for x in loaded_txt] # 見やすくするために小文字に変換する場合 word_list = loaded_txt # dataは一行一語()=縦)になっていること palindrome_list = [] for word in word_list: #逆順のスペルを作って比較する if len(word) > 4 and word == word[::-1]: # 4とすると5文字より長い単語が選ばれる palindrome_list.append(word) print(“\nNumber of palindromes found = {}\n”.format(len(palindrome_list))) # print in list format with no quotes or commas: print(*palindrome_list, sep=’\n’) |