Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.04 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. def makedict(filename='/usr/share/dict/words'):
  4.     words = open(filename).read().split('\n')
  5.     anagramdict = {}
  6.  
  7.     for word in words:
  8.         key = keyword(word)
  9.         if key not in anagramdict:
  10.             anagramdict[key] = (word,)
  11.         else:
  12.             anagramdict[key] += (word,)
  13.     return anagramdict
  14.  
  15. def keyword(word):
  16.         return ''.join(sorted(word))
  17.  
  18. def get_anagrams(word, dictionary=None):
  19.     if dictionary is None:
  20.         dictionary = makedict()
  21.  
  22.     key = keyword(word)
  23.     return set(dictionary[key]) if key in dictionary else set()
  24.  
  25. def main():
  26.     anagramdict = makedict()
  27.     while True:
  28.         word = raw_input('Enter a word, and anagrams will be found: ')
  29.         anagrams = get_anagrams(word, anagramdict)
  30.         if len(anagrams) > 0:
  31.             print "Anagrams for %s:" % word
  32.             for anagram in anagrams:
  33.                 print anagram
  34.         else:
  35.             print "Sorry, no anagrams were found for %s" % word
  36. if __name__ == '__main__':
  37.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement