Trouble with list comprehension

Shane Lillie shane.lillie at gmail.com
Wed Apr 9 11:30:32 EDT 2008


I've got a bit of code that looks like this:

for i in xrange(1000):
    # shuffle the doors
    doors = [ 'G', 'C', 'G' ]
    random.shuffle(doors)

    # save the doors that have goats (by index)
    goats = [ x for x in range(2) if doors[x] == 'G' ]

but for some reason the list comprehension is not always returning a
list with 2 elements in it (sometimes it will be just 1 element). I've
tried changing to a generator as well as using filter() and all 3 give
the same sort of results. It works if I use a loop, but I'd really
like to know what I'm doing wrong here. Everything looks like it
should be working.

Thanks in advance for any suggestions.



More information about the Python-list mailing list