Maison >développement back-end >Tutoriel Python >La correspondance entre `keys()` et `values()` dans les dictionnaires Python est-elle garantie ?

La correspondance entre `keys()` et `values()` dans les dictionnaires Python est-elle garantie ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-10 03:09:02252parcourir

Is the Correspondence Between `keys()` and `values()` in Python Dictionaries Guaranteed?

Assurer la correspondance entre les clés et les valeurs du dictionnaire

Dans les dictionnaires Python, les méthodes clés() et valeurs() permettent d'accéder aux clés et valeurs dans le dictionnaire, respectivement. Il a été observé que les listes renvoyées par ces méthodes semblent maintenir un mappage un-à-un, où la i-ème clé de keys() correspond à la i-ème valeur de values().

Il est cependant important de vérifier si cette cartographie est toujours garantie. Plus précisément, si un dictionnaire n'est pas modifié entre l'appel de key() et de value(), pouvons-nous supposer qu'ils donneront toujours les listes correspondantes ?

Documentation officielle

La documentation des dictionnaires Python n'indique pas explicitement si l'ordre des clés() et des valeurs() est préservé. Cependant, cela fournit un indice :

d = {'un':1, 'deux' : 2, 'trois' : 3}
k, v = d. clés(), d.values()
pour je dans range(len(k)):
print d[k[i]] == v[i]

True
True
True

Cet exemple illustre que lorsqu'aucune modification n'est apportée au dictionnaire entre l'appel de touches() et de valeurs(), la boucle for affiche systématiquement True, suggérant une correspondance entre les listes.

Observations supplémentaires

Pour confirmer cette observation, une recherche plus approfondie a été menée :

  • La documentation 2.x indique : "Si items(), key(),values(), iteritems(), iterkeys() et itervalues() sont appelés sans aucune modification intermédiaire du dictionnaire, le les listes correspondront directement. tant que le dictionnaire reste inchangé.
  • Conclusion

Sur la base de la documentation officielle et des observations empiriques, nous pouvons concluez que lorsque vous appelez touches() et valeurs() sur un dictionnaire Python sans apporter de modifications au dictionnaire entre les appels, vous pouvez vous fier à une correspondance biunivoque entre les listes de clés et de valeurs. Ce mappage fiable simplifie la manipulation du dictionnaire et garantit un comportement prévisible dans les scénarios de programmation courants.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn