On Oct 29, 3:57 pm, GHZ <[EMAIL PROTECTED]> wrote: > Is this the best way to test every item in a list? > > def alltrue(f,l): > return reduce(bool.__and__,map(f,l)) > > def onetrue(f,l): > return reduce(bool.__or__,map(f,l)) > > > > >>> alltrue(lambda x:x>1,[1,2,3]) > False > > >>> alltrue(lambda x:x>=1,[1,2,3]) > True > > Thanks
If you are using python 2.5 the best way would be something like this: >>> all(x > 1 for x in [1,2,3]) False >>> any(x > 1 for x in [1,2,3]) True If you are using an earlier version you are still discouraged from using reduce in place of a more readable construct. In most cases list comprehension is encouraged over map also. If `all' and `any' aren't defined you can use something like the following. One advantage of these over what you posted is that they will return as soon as an exit condition is reached as opposed to processing the entire list. [code] if not all: def all(seq): for val in seq: if not val: return False return True if not any: def any(seq): for val in seq: if val: return True return False [/code] Matt -- http://mail.python.org/mailman/listinfo/python-list