Anagrams

cokofreedom at gmail.com cokofreedom at gmail.com
Wed Oct 24 10:44:42 EDT 2007


On Oct 24, 2:28 am, Paul Hankin <paul.han... at gmail.com> wrote:
> On Oct 23, 9:21 am, cokofree... at gmail.com wrote:
>
> > This one uses a dictionary to store prime values of each letter in the
> > alphabet and for each line multiple the results of the characters
> > (which is unique for each anagram) and add them to a dictionary for
> > printing latter.
>
> > def anagram_finder():
> >     primeAlpha = {'a':2, 'b':3, 'c':5, 'd':7,'e' : 11, 'f':13, 'g':17,
> > 'h':19,        \
> >                   'i':23, 'j':29, 'k':31, 'l':37, 'm':41, 'n':43, 'o':
> > 47, 'p':53,    \
> >                   'q':59, 'r':61, 's':67, 't':71, 'u':73, 'v':79, 'w':
> > 83, 'x':89,    \
> >                   'y':97, 'z':101}
> > ...
>
> A somewhat nicer start: compute primes (naively) rather than typing
> out the dictionary.
>
> import string
> from itertools import ifilter, count
>
> def anagram_finder():
>      primes = ifilter(lambda p: all(p % k for k in xrange(2, p)),
> count(2))
>      primeAlpha = dict(zip(string.lowercase, primes))
>      ...
>
> --
> Paul Hankin

Towards itertools, apart from the lib page on Python does anyone know
of good tutorials of their usage...(beyond exploring myself it would
be nice to see good examples for usage and effective combinations...)




More information about the Python-list mailing list