too many values to unpack (expected 2)

Python Erreur courante

Explication

L'erreur `ValueError: too many values to unpack (expected 2)` survient lors d'un **dépaquetage** où il y a **plus de valeurs** à droite que de variables à gauche. Vous attendez 2 éléments, mais la séquence en contient davantage. ```python a, b = [1, 2, 3] # 2 variables, mais 3 valeurs # ValueError: too many values to unpack (expected 2) ```

Causes courantes

- **Plus d'éléments que de variables** dans l'affectation. - **`split()` renvoie plus de morceaux** que prévu (séparateur présent plusieurs fois). - **Ligne CSV** avec une colonne supplémentaire. - **Itération sur un dictionnaire avec `.items()`** vers deux variables alors que la structure est plus complexe.

1. Absorbez le surplus avec *

L'étoile capture tous les éléments restants dans une liste :

a, b, *reste = [1, 2, 3]   # a=1, b=2, reste=[3]
premier, *_ = donnees       # ne garder que le premier

2. Limitez le découpage avec maxsplit

Pour split, fixez le nombre maximal de coupures :

cle, valeur = "a=b=c".split("=", maxsplit=1)   # cle="a", valeur="b=c"

3. Vérifiez la forme des données

parts = ligne.split(",")
if len(parts) == 2:
    a, b = parts
else:
    print("Ligne inattendue :", ligne)

Comment prevenir cette erreur

- **Utilisez `*reste`** dès que le nombre d'éléments peut varier. - **Utilisez `maxsplit`** pour découper un nombre fixe de fois. - Pour le CSV, préférez le module `csv` au `split` manuel.

Besoin d'aide sur votre projet ?

Besoin d'aide sur un probleme technique ? Decrivez-le pour des recommandations.

Nous contacter

Questions frequentes

Quelle différence avec « not enough values to unpack » ?
« too many » = trop de valeurs pour le nombre de variables ; « not enough » = pas assez. Dans les deux cas, alignez le nombre de variables ou utilisez `*reste` pour absorber le surplus.
Comment ne garder que les premiers éléments d'une séquence longue ?
Utilisez l'étoile pour ignorer le reste : `premier, deuxieme, *_ = ma_sequence`. Le `*_` capture et jette tout ce qui suit.

Erreurs similaires

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.