Maîtriser les tuples Python : packing, unpacking, comparaison, slicing et clés de dictionnaire
Comprendre la correspondance de tuples en Python
La correspondance de tuples regroupe les tuples en comparant un élément spécifié, généralement le second. Un motif courant est d'utiliser un dictionnaire avec l'élément du tuple comme clé. De plus, vous pouvez construire de nouveaux tuples à partir de tranches de tuples existants.
Syntaxe de base des tuples
Définissez un tuple avec des valeurs séparées par des virgules entre parenthèses :
tup = ('Jan', 'Fév', 'Mar')
Les tuples vides utilisent deux parenthèses vides : tup1 = ().
Pour une seule valeur, incluez une virgule finale : tup1 = (50,). Les indices commencent à 0 et les tuples supportent la concaténation et le slicing.
Affectation de tuples
Python permet l'affectation simultanée de plusieurs variables en utilisant un tuple. Cette technique est pratique pour déballer des données structurées.
Exemple :
tup1 = ('Robert', 'Carlos', '1965', 'Terminator 1995', 'Acteur', 'Floride')
tup2 = (1, 2, 3, 4, 5, 6, 7)
print(tup1[0]) # Robert
print(tup2[1:4]) # (2, 3, 4)
Packing et Unpacking
Le « packing » insère des valeurs dans un nouveau tuple ; l' »unpacking » les extrait dans des variables.
x = ('Guru99', 20, 'Éducation')
(entreprise, emp, profil) = x
print(entreprise) # Guru99
print(emp) # 20
print(profil) # Éducation
Comparer des tuples
Les opérateurs de comparaison (<, >, ==, etc.) fonctionnent lexicographiquement : le premier élément différent détermine le résultat.
# Cas 1
a = (5, 6)
b = (1, 4)
if a > b:
print('a est plus grand')
else:
print('b est plus grand')
De même pour les autres cas : si les premiers éléments sont égaux, la comparaison continue avec l'élément suivant.
Utiliser les tuples comme clés de dictionnaire
Comme les tuples sont hachables, ils peuvent servir de clés de dictionnaire, contrairement aux listes.
annuaire = {('nom', 'prénom'): '555-1234'}
for nom, prenom in annuaire:
print(prenom, nom, annuaire[(nom, prenom)])
Les éléments du dictionnaire peuvent être récupérés comme une liste de tuples clé-valeur :
a = {'x': 100, 'y': 200}
b = list(a.items())
print(b) # [('x', 100), ('y', 200)]
Supprimer des tuples
Les tuples sont immuables ; vous ne pouvez pas supprimer d'éléments individuels. Cependant, vous pouvez supprimer un objet tuple entier avec l'instruction del.
Trancher (slicing) des tuples
La syntaxe de tranchage fonctionne pour les tuples comme pour les listes :
x = ('a', 'b', 'c', 'd', 'e')
print(x[2:4]) # ('c', 'd')
Fonctions intégrées pour les tuples
Les tuples fonctionnent parfaitement avec des fonctions comme all(), any(), enumerate(), max(), min(), sorted(), len() et tuple().
Avantages des tuples sur les listes
- L'itération sur les tuples est légèrement plus rapide car ils sont immuables.
- Seules les séquences immuables peuvent être clés de dictionnaire ; les tuples remplissent ce rôle.
- Stocker des données immuables dans un tuple garantit qu'elles ne peuvent pas être modifiées accidentellement.
Résumé rapide
- Le packing et unpacking permettent un transfert de données propre.
- Les tuples peuvent être comparés lexicographiquement.
- Utilisez les tuples comme clés de dictionnaire composites.
- Les tuples sont immuables ; utilisez
delpour supprimer l'objet entier. - Le slicing récupère efficacement des sous-tuples.
Python
- Maîtriser les types de données Python : Guide pratique
- Maîtriser les opérateurs Python : Guide complet
- Maîtriser l'instruction pass en Python : Guide pratique
- Maîtriser les arguments de fonctions Python : Positionnels, nommés et paramètres par défaut
- Maîtriser les dictionnaires Python : création, manipulation et techniques avancées
- Maîtriser les itérateurs Python : fonctionnement et création des vôtres
- Les fermetures Python expliquées : comment les fonctions imbriquées capturent les variables
- Maîtriser Python datetime : guide pratique pour les dates, heures et fuseaux horaires
- Maîtriser les tuples Python : packing, unpacking, comparaison, slicing et clés de dictionnaire