[Tutor] anagram solving algorithm
Danny Yoo
dyoo at hkn.eecs.berkeley.edu
Wed Sep 29 20:44:25 CEST 2004
On Wed, 29 Sep 2004, Max Russell wrote:
> Hello here is a breakdown of an algorithm I'm using to write my own
> anagram solver:
[text cut]
> My problem here is that it how to structure looking at each possibe word
> in the list: how to set up the loop for that, also how to do the
> sort/inspection of each word.
Hi Max,
It sounds like you want to run a 'for' loop across every word in your
wordlist.
Here's an example of a for loop, just so you get the idea of what it can
do:
###
>>> def isEven(x):
... return x % 2 == 0
...
>>> numbers = [3, 1, 4, 1, 5, 9, 2, 6]
>>> for n in numbers:
... print "I'm looking at", n
... if isEven(n):
... print n, "is even"
... else:
... print n, "is odd"
...
I'm looking at 3
3 is odd
I'm looking at 1
1 is odd
I'm looking at 4
4 is even
I'm looking at 1
1 is odd
I'm looking at 5
5 is odd
I'm looking at 9
9 is odd
I'm looking at 2
2 is even
I'm looking at 6
6 is even
###
For more examples of loops, take a look at a tutorial like Alan's:
http://www.freenetpages.co.uk/hp/alan.gauld/tutloops.htm
There are two kinds of loops in Python:
1. for --- good for going across sequences.
2. while --- good for repeating something until some condition
changes.
'for' can go across lists easily, so it's a good tool here. You can loop
across a list with 'while' too, but it's not so idiomatic.
Just as a last note: there's a very clever way to solve the anagram
problem, and it does involve sorting. But let's see try to get your first
solution working: we can talk about the clever approach later. *grin*
Good luck to you!
More information about the Tutor
mailing list