Trouble with list comprehension

Shane Lillie shane.lillie at
Wed Apr 9 17:30:32 CEST 2008

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

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

    # 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