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.
Sur cette page

Exemple

#
Python
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)
Résultatrésultat enregistré, vous pouvez le vérifier
Léa 7
10 [20, 30, 40] 50
2 1

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

#
Syntaxe
a, b = séquence
premier, *reste = séquence

Plus d’exemples

#
Trop peu de valeurs
Python
try:
    x, y, z = [1, 2]
except ValueError as error:
    print(error)
Résultatrésultat enregistré, vous pouvez le vérifier
not enough values to unpack (expected 3, got 2)

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.