そのため、文字列を受け取り、文字列内のすべての文字を並べ替えたタプルを返すプログラムがあります。
次に、プログラムはタプルをキーとして辞書を作成する必要があり、値はキーを持つすべての単語のリストです
これまでのところ、私は持っています:
_DEBUG = True
def getLetters(string):
"""Purpose, to nab letters from a string and to put them in a tuple in
sorted order."""
#sort the letters and put them in a tuple
tuple_o_letters = tuple(sorted(string))
if _DEBUG:
print tuple_o_letters
return tuple_o_letters
def main():
try:# open the file
fin = open("words2.txt")
except:
#if file doesn't exist
print("no, no, file no here.")
sys.exit(0)
wordList = [] #create a word list
for eachline in fin:
#fill up the word list and get rid of new lines
wordList.append(eachline.strip())
word_dict = {} # create a dictionary
for eachWord in wordList:
tuple = getLetters(eachWord) # make a tuple out of each word
word_dict[tuple] = wordList #store it into a dictionary
print word_dict #print out the dictionary
if __name__ == '__main__':
main()
さて、タプルを辞書のキーとして保存することはできますが、単語リストにそれらのキーがある場合にのみ、単語リストを値として保存する方法がわかりません。
例: 辞書の if にキー ('d', 'o', 'g') がある場合、その特定のエントリに対して値 god と dog を取得します。これらの 2 つの単語が単語リストにあると仮定します ( words2.txt ファイルから取得しました。