python混杂解算器算法

2024-09-29 23:16:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要为给定的问题编写一个代码。在

我得到了一个单词,我需要找到与文件中给定单词列表匹配的所有可能的组合。在

这是我的密码。我能做得更好吗。我相信可以。请提出建议。在

dict = {}                                                
file = open("/usr/share/dict/words", "r")                

for word in file:                                        #Iterate through every word in the dictionary
        word = word.strip().lower()                        #Strip newlines and send to lowercase
        sorted_word = ''.join(sorted(word))                #Alphabetically sort the word
        if sorted_word in dict:                                #Check if sorted_word is already a key
                if word not in dict[sorted_word]:        #Make sure word is not already in the list under the key sorted_word
                        dict[sorted_word].append(word)        #Add to list under the key sorted_word
        else:                                                #If not in dictionary
                dict[sorted_word] = [word]                #Create new list with one entry
while(True):                                                #Loop until quit is typed
        jumble = raw_input("Enter a jumble to decode or 'quit': ")        #Get input
        jumble = jumble.lower()                                #Send jumble to lower
        if(jumble == "quit"):                                #Quit if quit is typed
                break
        jumble = ''.join(sorted(jumble))                #Sort jumble alphabetical
        if jumble in dict:                                #If sorted jumble exists in dictionary
                results = dict[jumble]                        #Get list of words that match jumble
                for result in results:                        #Loop through list printing results
                        print result,                        #Trailing , designates that there should be a space between entries
                print ""                                #Print newlines
        else:                                                #Jumble not found in dictionary print message
                print "Results for jumble not found"

Tags: thetoinfordictionaryifisnot
1条回答
网友
1楼 · 发布于 2024-09-29 23:16:01

您可以使用^{}^{}来简化这些:

import collections

# If you try to look up a key that doesn't exist in `words`,
# it will create a new `set()` for that key and return it.
words = collections.defaultdict(set)
with open("/usr/share/dict/words", "r") as file:
    for word in file:
        word = word.strip().lower()
        sorted_word = "".join(sorted(word))
        # `words[sorted_word]` is a set, so there's no need to check if
        # `word` is already in it.
        words[sorted_word].add(word)

相关问题 更多 >

    热门问题