¿Alguna vez has necesitado comprobar si varios objetos boolean tenían valor True? Si son pocos objetos (2 o incluso 3) podrías evaluarlos de forma independiente ayudándote del operador lógico and y la instrucción if:
a = True
b = True
c = True
if a and b and c:
print("Los tres objetos son True")
else:
print("Al menos uno no es True")
En el ejemplo, los 3 objetos (a, b y c) tienen valor True, por tanto la condición evaluada por la instrucción if se cumple. La salida por pantalla es Los tres objetos son True.
Hasta aquí todo bien, es una solución simple, el problema llega cuando son muchos objetos. La opción más sensata es usar un objeto iterable (como una lista, tupla, diccionario, etc.), almacenar todos los objetos boolean en el iterable y evaluarlos con la ayuda de un bucle for:
def all (items):
for x in items:
if not x:
return False
return True
lista = [True, False, True, True, True]
if all(lista):
print("Todos son True")
else:
print("Al menos uno no es True")
La salida generada por el código del ejemplo será False, puesto que el segundo elemento de la lista tiene valor False.
Función built-in all()
¿Y si te digo que ni siquiera es necesario que implementes la función all()?
Exacto, Python ya lo ha hecho por ti. Es una de sus funciones built-in, es decir, ya está implementada dentro de la librería estándar de Python y disponible para que la uses siempre que la necesites.
La función all() puede recibir como parámetro cualquier objeto iterable (si usas un diccionario evaluará las claves) y devuelve True si todos los elementos del iterable son True o si el iterable está vacío. Devolverá false en caso contrario.
Por tanto, el código anterior quedaría simplemente así:
lista = [True, False, True, True, True]
if all(lista):
print("Todos son True")
else:
print("Al menos uno no es True")
Sígueme:
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.