Shane Lillie wrote: > 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' ] >
Using range(2) is wrong since range(2) is [0,1]. You want range(3) which gives [0,1,2]. Gary Herron > 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. > -- http://mail.python.org/mailman/listinfo/python-list