Maison >développement back-end >Tutoriel Python >Comment résoudre « trop de valeurs à décompresser » lors d'une itération sur un dictionnaire avec des listes de valeurs-clés ?
Trop de valeurs à décompresser : résolution d'une itération sur un dictionnaire
Lors d'une itération sur un dictionnaire avec des paires clé-valeur, où les valeurs sont listes, vous pouvez rencontrer l'erreur « trop de valeurs à décompresser » si votre code tente de décompresser à la fois la clé et la valeur simultanément.
Considérez l'exemple suivant :
<code class="python">first_names = ['foo', 'bar'] last_names = ['gravy', 'snowman'] fields = { 'first_names': first_names, 'last_name': last_names, } </code>
Lorsque vous essayez pour parcourir ce dictionnaire en utilisant le code suivant :
<code class="python">for field, possible_values in fields: # error happens on this line</code>
Vous rencontrerez l'erreur "trop de valeurs à décompresser" car l'itération tente de décompresser à la fois la clé (champ) et la valeur (possible_values) de le dictionnaire simultanément. Pour résoudre ce problème, vous devez utiliser la méthode appropriée pour parcourir les dictionnaires.
Python 3
Dans Python 3, vous pouvez utiliser la méthode items() pour itérer sur les paires clé-valeur du dictionnaire. Cette méthode renvoie une liste de tuples, où chaque tuple contient la clé et la valeur du dictionnaire :
<code class="python">for field, possible_values in fields.items(): print(field, possible_values)</code>
Python 2
En Python 2, vous pouvez utilisez la méthode iteritems() pour parcourir les paires clé-valeur du dictionnaire. Cette méthode renvoie un itérateur de tuples, où chaque tuple contient la clé et la valeur du dictionnaire :
<code class="python">for field, possible_values in fields.iteritems(): print field, possible_values</code>
Informations supplémentaires
Pour des informations plus complètes sur l'itération via des dictionnaires, y compris les différences entre iteritems() et items() dans les versions de Python, reportez-vous aux ressources suivantes :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!