Checking for a full house

Robert Kern rkern at ucsd.edu
Wed May 25 23:11:11 EDT 2005


Tony Meyer wrote:
> [Tony Meyer]
> 
>>>def isfullHouse(roll):
>>>    return len(set(roll)) != 2
> 
> [Robert Kern]
> 
>>[1, 1, 1, 1, 2] is not a full house.
> 
> Opps.  I did say it was untested (that should have been == not !=, too).
> What about:
> 
> def isfullHouse(roll):
>     return len(set(roll)) == 2 and roll.count(min(roll)) != 1 and
> roll.count(max(roll)) != 1
> 
> Although your solution looks a lot nicer than this (though it may use more
> memory, and might be slower).

It *is* slower as written, although a more optimized version using 
itertools and sets (left as an exercise for the bored) gets close to 
yours. I don't think memory is an issue with 5-element lists of small 
integers.

-- 
Robert Kern
rkern at ucsd.edu

"In the fields of hell where the grass grows high
  Are the graves of dreams allowed to die."
   -- Richard Harter




More information about the Python-list mailing list