Verificación con all() y zip()
En este paso, aprenderás cómo utilizar las funciones all()
y zip()
en conjunto con tuplas ordenadas para realizar comprobaciones y comparaciones más avanzadas.
La función all()
es una función incorporada de Python que devuelve True
si todos los elementos de un iterable son verdaderos (o si el iterable está vacío). A menudo se utiliza para comprobar si se cumple una condición para todos los elementos de una secuencia.
La función zip()
es otra función incorporada de Python que toma múltiples iterables como argumentos y devuelve un iterador de tuplas. Cada tupla contiene los elementos correspondientes de los iterables de entrada. Es útil para emparejar elementos de diferentes secuencias para comparación u otras operaciones.
Veamos cómo se pueden utilizar estas funciones con tuplas ordenadas:
- Abre el editor de VS Code en el entorno de LabEx.
- Modifica el archivo existente
sort_tuple.py
en el directorio ~/project
, o créalo si no existe.
- Copia y pega el siguiente código en
sort_tuple.py
:
## Checking if a tuple is sorted using all() and zip()
def is_sorted(data):
## zip(data, data[1:]) pairs consecutive elements
## all(x <= y for x, y in ...) checks if each pair is in ascending order
return all(x <= y for x, y in zip(data, data[1:]))
my_tuple1 = (1, 2, 3, 4, 5)
my_tuple2 = (5, 2, 8, 1, 9)
print("Tuple 1:", my_tuple1, "is sorted:", is_sorted(my_tuple1))
print("Tuple 2:", my_tuple2, "is sorted:", is_sorted(my_tuple2))
Este código define una función is_sorted()
que comprueba si una tupla dada está ordenada en orden ascendente. Utiliza zip()
para emparejar elementos consecutivos de la tupla y all()
para comprobar si cada par está en orden ascendente.
Para ejecutar el script, abre una terminal en VS Code (puedes encontrarla en el panel inferior) y ejecuta el siguiente comando:
python sort_tuple.py
Deberías ver la siguiente salida:
Tuple 1: (1, 2, 3, 4, 5) is sorted: True
Tuple 2: (5, 2, 8, 1, 9) is sorted: False
Como puedes ver, la función is_sorted()
identifica correctamente si las tuplas están ordenadas o no.
Extendamos este ejemplo para comprobar si dos tuplas son idénticas después de ordenarlas:
## Checking if two tuples are identical after sorting
def are_identical_after_sorting(tuple1, tuple2):
return sorted(tuple1) == sorted(tuple2)
tuple_a = (3, 1, 4, 1, 5)
tuple_b = (1, 5, 1, 4, 3)
tuple_c = (1, 2, 3, 4, 5)
print("Tuple A:", tuple_a, "and Tuple B:", tuple_b, "are identical after sorting:", are_identical_after_sorting(tuple_a, tuple_b))
print("Tuple A:", tuple_a, "and Tuple C:", tuple_c, "are identical after sorting:", are_identical_after_sorting(tuple_a, tuple_c))
Agrega este código a tu archivo sort_tuple.py
y ejecútalo de nuevo:
python sort_tuple.py
La salida ahora debería incluir:
Tuple A: (3, 1, 4, 1, 5) and Tuple B: (1, 5, 1, 4, 3) are identical after sorting: True
Tuple A: (3, 1, 4, 1, 5) and Tuple C: (1, 2, 3, 4, 5) are identical after sorting: False
En este ejemplo, la función are_identical_after_sorting()
comprueba si dos tuplas contienen los mismos elementos, independientemente de su orden original. Ordena ambas tuplas y luego compara las listas ordenadas.