Remarque: j'ai Je comprends que lorsque vous essayez le suivant pour la boucle: p> vous obtenez: p> for key in dict:
print key
4 Réponses :
Python a une fonctionnalité appelée déballage itérable. Lorsque vous faites python suppose est équivalent à p> sauf ne crée pas que Cela signifie que si vous faites p> python ne peut pas regarder le fait que vous avez dit chose code> est un tuple ou une liste ou quelque chose avec 2 éléments, et il attribue les premier et second éléments à
A code> et
b code>. Cela fonctionne également dans un
pour code> boucle: p>
c code> variable. p>
k, v code> au lieu de
k code> et donnez des éléments au lieu des clés, car les touches sont peut-être 2-tuples. Il doit parcourir les clés et essayer de déballer chaque clé dans les variables
k code> et
V code>. P> p>
L'autre réponse explique bien. Mais voici quelques illustrations supplémentaires pour la manière dont il se comporte, en montrant des cas où cela fonctionne sans erreur (vous pouvez donc voir quelque chose): La boucle passe par les touches fonctionne aussi avec des cordes, tant qu'ils ont exactement deux caractères: p> Je suppose dans votre cas Quelque chose comme ça? p> ici, la clé "ABC" est un triple et donc Python se plaint d'essayer de le décompresser à deux variables. P> P> P> P> > (1 , 2) code> et
(4,5) code> et depuis ces tunples de taille 2, ils peuvent être affectés à
k code> et
v code>. p>
Bien que cela soit correct, ce n'est pas réellement utile b> à l'OP, compte tenu du contexte de la question.
J'espère que est utile B> en illustrant le comportement avec quelques exemples, en particulier celui qui entraîne réellement le Revenu ValueError code>. J'ajoute plus à ma réponse pour ça ...
@Dougr. Comment est-ce maintenant?
Beaucoup mieux. Noté A +1.
Tout en utilisant et en utilisant pour xx dans xx code>, vous utilisez réellement un itérateur pour iTerates the XX, et XX doit être démontré. Vous pouvez utiliser la fonction
iter code> pour obtenir un itérateur, comme
suivant code> pour accéder aux éléments. P>
k, v = 'a'
dans Python 2.7.6 Il semble que vous souhaitiez vérifier les sous-projets du dictionnaire avec dict.has_key (nom_hamis) code>. P>