Quiero que los resultados de la función a ser:manera Pythonic para comprobar si: todos los elementos a evaluar todos los elementos -O- Falso resultado verdadero
- Todos los valores se evalúan como False (Ninguno, 0, cadena vacía) -> True
- Todos los valores evalúan como True -> True
- todos los demás casos -> Falso
Este es mi intento en la que:
>>> def consistent(x):
... x_filtered = filter(None, x)
... return len(x_filtered) in (0, len(x))
...
>>> consistent((0,1))
False
>>> consistent((1,1))
True
>>> consistent((0,0))
True
[Bonificación]
¿Cómo debe nombrarse esta función?
Lo bueno es que uno de ellos está garantizado para mirar solo un elemento. Si el primer elemento es verdadero, 'any' terminará inmediatamente. Es falso, 'todo' lo será. –
el 'itertools.tee' es el toque que hace que esta sea la respuesta que vale la pena poner en un módulo de kit de herramientas. No tiene que pensar en lo que le envía. – aaronasterling
Sin embargo, si en su mayoría son ciertas, pasará por casi todas ellas en la llamada a todos (it1) ... si usó itertools.izip, sería más eficiente (en promedio) para los casos en que hay valores mixtos. – John