andmap and ormap
Felipe Almeida Lessa
felipe.lessa at gmail.com
Tue Mar 14 07:30:21 EST 2006
Em Ter, 2006-03-14 às 04:23 -0800, wkehowski at cox.net escreveu:
> def andmap(b,L):
> if False in map(b,L): return False
> else: return True
>
> def ormap(b,L):
> if True in map(b,L): return True
> else: return False
>
> Is this good enough?
The problem is that it will evaluate all possibilities needlessly. Try
(not tested and 2.4-only):
def andmap(func, objs):
for boolean in (func(obj) for obj in objs):
if not boolean:
return False
return True
def ormap(func, objs):
for boolean in (func(obj) for obj in objs):
if boolean:
return True
return False
--
"Quem excele em empregar a força militar subjulga os exércitos dos
outros povos sem travar batalha, toma cidades fortificadas dos outros
povos sem as atacar e destrói os estados dos outros povos sem lutas
prolongadas. Deve lutar sob o Céu com o propósito primordial da
'preservação'. Desse modo suas armas não se embotarão, e os ganhos
poderão ser preservados. Essa é a estratégia para planejar ofensivas."
-- Sun Tzu, em "A arte da guerra"
More information about the Python-list
mailing list