開発環境
- OS X El Capitan - Apple (OS)
- Emacs (Text Editor)
- Python 3.5 (プログラミング言語)
Think Python (Allen B. Downey (著)、 O'Reilly Media)のChapter 11.(Dictionaries)のExercises 11-6..(No. 2647)を取り組んでみる。
Exercises 11-6.(No. 2647)
コード(Emacs)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import pronounce
def getWordlist(filename):
with open(filename) as f:
wordlist = [line.strip() for line in f]
return wordlist
pronounces = pronounce.read_dictionary()
def isHomophones(word1, word2):
if word1 in pronounces and word2 in pronounces:
return pronounces[word1] == pronounces[word2]
return False
def check(word, wordlist):
word1 = word[1:]
word2 = word[0] + word[2:]
if (word1 in wordlist and isHomophones(word, word1) and
word2 in wordlist and isHomophones(word, word2)):
return True
return False
if __name__ == '__main__':
filename = 'words.txt'
wordlist = getWordlist(filename)
with open(filename) as f:
for line in f:
word = line.strip()
if check(word, wordlist):
print('{0}, {1}, {2}: {3}'.format(
word, word[1:], word[0] + word[2:], pronounces[word]))
入出力結果(Terminal, IPython)
$ ./sample6.py llama, lama, lama: L AA1 M AH0 llamas, lamas, lamas: L AA1 M AH0 Z scent, cent, sent: S EH1 N T $
0 コメント:
コメントを投稿