Déballage de séquences
Affectation des éléments d’un tuple ou d’une liste à plusieurs variables à la fois.
- Renvoie
- Rien ; il s’agit d’une affectation.
Exemple
#name, level = ("Léa", 7)
print(name, level)
first, *middle, last = [10, 20, 30, 40, 50]
print(first, middle, last)
a, b = 1, 2
a, b = b, a
print(a, b)Définition et utilisation
#Le déballage permet d’affecter les éléments d’une séquence à plusieurs variables en une seule instruction : x, y = (3, 4). Le nombre de variables doit correspondre au nombre d’éléments.
Une variable précédée d’une étoile récupère le « reste » : first, *rest = [1, 2, 3, 4] donne first = 1 et rest = [2, 3, 4]. L’étoile peut se trouver à n’importe quelle position, mais une seule fois.
Grâce au déballage, échanger les valeurs de deux variables s’écrit a, b = b, a, et les fonctions peuvent facilement renvoyer plusieurs valeurs. Dans les boucles, on déballe des paires issues de enumerate(), zip() et dict.items().
Syntaxe
#a, b = séquence
premier, *reste = séquencePlus d’exemples
#try:
x, y, z = [1, 2]
except ValueError as error:
print(error)Bonnes pratiques
#- Affectez les valeurs inutiles à
_:name, _ = pair. - Le déballage dans une boucle
for key, value in d.items():est plus lisible que d’accéder aux éléments par indice.
Entrées associées
#Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.