Digamos que tiene una secuencia iterable de thing
objetos llamados things
. Cada thing
tiene un método is_whatever()
que devuelve True si cumple con el criterio "cualquiera". Quiero averiguar de manera eficiente si algún elemento en things
es lo que sea.¿Es esta una manera eficiente y pitónica de ver si algún elemento en un iterable es verdadero para cierto atributo?
Esto es lo que estoy haciendo ahora:
any_item_is_whatever = True in (item.is_whatever() for item in items)
¿Eso es una manera eficiente de hacerlo, es decir, Python dejará de generar elementos de la iterables tan pronto como se encuentra el primer resultado verdadero? Estilísticamente, ¿es pitónico?
Gracias. Me siento aliviado. 'True in' es feo. – Ghopper21
Pensé que era bastante ingenioso ... –
@NoctisSkytower: Incluso provoca cortocircuitos cuando se usa con una expresión de generador, por lo que en realidad es bastante bueno. Usar la forma idiomática es tanto más fácil de leer como más rápido. –