Verificar con all() y zip()
En este paso, aprenderás cómo usar las funciones all() y zip() para comprobar si una lista está ordenada. Estas funciones proporcionan una forma concisa y eficiente de verificar el orden de los elementos en una lista.
Primero, entendamos la función zip(). La función zip() toma múltiples iterables (por ejemplo, listas) como entrada y devuelve un iterador de tuplas, donde cada tupla contiene los elementos correspondientes de los iterables de entrada.
Considera el siguiente ejemplo:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
zipped = zip(list1, list2)
print(list(zipped))
Agrega este código a tu archivo sort_list.py, reemplazando el contenido anterior. Luego, ejecuta el script:
python sort_list.py
Deberías ver la siguiente salida:
[(1, 4), (2, 5), (3, 6)]
La función zip() ha creado un iterador que produce tuplas que contienen los elementos correspondientes de list1 y list2.
Ahora, entendamos la función all(). La función all() toma un iterable como entrada y devuelve True si todos los elementos del iterable son verdaderos, y False en caso contrario.
Considera el siguiente ejemplo:
bool_list = [True, True, True]
print(all(bool_list))
bool_list = [True, False, True]
print(all(bool_list))
Agrega este código a tu archivo sort_list.py y ejecútalo:
python sort_list.py
Verás la siguiente salida:
True
False
Ahora, combinemos zip() y all() para comprobar si una lista está ordenada. La idea es comparar cada elemento con el siguiente elemento en la lista y comprobar si la lista está en orden ascendente.
numbers = [1, 2, 3, 4, 5]
is_sorted = all(numbers[i] <= numbers[i+1] for i in range(len(numbers)-1))
print(is_sorted)
numbers = [1, 2, 5, 4, 5]
is_sorted = all(numbers[i] <= numbers[i+1] for i in range(len(numbers)-1))
print(is_sorted)
Modifica tu archivo sort_list.py para incluir este código. Vuelve a ejecutar el script:
python sort_list.py
Deberías ver la siguiente salida:
True
False
Este código utiliza una expresión generadora con zip() para comparar elementos adyacentes en la lista. La función all() luego comprueba si todas las comparaciones son verdaderas, lo que indica que la lista está ordenada.
Este enfoque proporciona una forma concisa y eficiente de comprobar si una lista está ordenada en Python.