Vérification avec all() et zip()
Dans cette étape, vous allez apprendre à utiliser les fonctions all()
et zip()
en conjonction avec des tuples triés pour effectuer des vérifications et des comparaisons plus avancées.
La fonction all()
est une fonction intégrée (built-in) de Python qui renvoie True
si tous les éléments d'un itérable sont vrais (ou si l'itérable est vide). Elle est souvent utilisée pour vérifier si une condition est remplie pour tous les éléments d'une séquence.
La fonction zip()
est une autre fonction intégrée de Python qui prend plusieurs itérables en arguments et renvoie un itérateur de tuples. Chaque tuple contient les éléments correspondants des itérables d'entrée. Elle est utile pour associer des éléments de différentes séquences pour des comparaisons ou d'autres opérations.
Voyons comment ces fonctions peuvent être utilisées avec des tuples triés :
- Ouvrez l'éditeur VS Code dans l'environnement LabEx.
- Modifiez le fichier existant
sort_tuple.py
dans le répertoire ~/project
, ou créez-le s'il n'existe pas.
- Copiez et collez le code suivant dans
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))
Ce code définit une fonction is_sorted()
qui vérifie si un tuple donné est trié par ordre croissant. Elle utilise zip()
pour associer les éléments consécutifs du tuple et all()
pour vérifier si chaque paire est dans l'ordre croissant.
Pour exécuter le script, ouvrez un terminal dans VS Code (vous le trouverez dans le panneau inférieur) et exécutez la commande suivante :
python sort_tuple.py
Vous devriez voir la sortie suivante :
Tuple 1: (1, 2, 3, 4, 5) is sorted: True
Tuple 2: (5, 2, 8, 1, 9) is sorted: False
Comme vous pouvez le voir, la fonction is_sorted()
identifie correctement si les tuples sont triés ou non.
Étendons cet exemple pour vérifier si deux tuples sont identiques après tri :
## 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))
Ajoutez ce code à votre fichier sort_tuple.py
et exécutez-le à nouveau :
python sort_tuple.py
La sortie devrait maintenant inclure :
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
Dans cet exemple, la fonction are_identical_after_sorting()
vérifie si deux tuples contiennent les mêmes éléments, indépendamment de leur ordre d'origine. Elle trie les deux tuples et compare ensuite les listes triées.