2010-02-24 20 views
7

En Ruby, puede llamar al Enumerable#any? en un objeto enumerable para ver si alguno de sus elementos satisface el predicado que pasa en el bloque. De este modo:¿Hay un equivalente en Python del "cualquiera" de Ruby? ¿función?

lst.any?{|e| pred(e) } 

En Python, hay una función any que hace algo similar, pero en una lista de booleanos.

Por supuesto, para obtener una lista de tamaño razonable, yo solo que:

any(map(pred,lst)) 

Sin embargo, si la lista es muy larga, no quiero tener que hacer toda la operación map primera .

Entonces, la pregunta: ¿Hay un genérico cortocircuitando la función any en Python?

Sí, sé que es realmente trivial escribir uno yo mismo, pero me gustaría utilizar funciones integradas veloces (y tampoco reinventar ninguna rueda).

Respuesta

21
any(pred(x) for x in lst) 

alternativamente

from itertools import imap 
any(imap(pred, lst)) 
+0

Ah, claro! Generador de comprensiones. ¡Gracias! – perimosocordiae

+1

@perimosocordiae: expresiones de generador. –

Cuestiones relacionadas