Comprendre l'ordre des dictionnaires Python

WBOY
Libérer: 2024-02-09 20:42:04
avant
545 Les gens l'ont consulté

Comprendre lordre des dictionnaires Python

Contenu de la question

Quelqu'un peut-il expliquer comment les dictionnaires python (v3.5) sont triés ?

data = {"john": 23, "rick": 33, "mary": 63, "ron": 23, "joel": 51}

for key in data:
        print("your name is " + key + ", and you are also " + str(data[key]) + " years old.")
Copier après la connexion

Sortie réelle :

your name is rick, and you are also 33 years old.
your name is ron, and you are also 23 years old.
your name is mary, and you are also 63 years old.
your name is john, and you are also 23 years old.
your name is joel, and you are also 51 years old.
Copier après la connexion

Résultat attendu (ordre lexicographique) :

Your name is John, and you are also 23 years old.
Your name is Rick, and you are also 33 years old.
Your name is Mary, and you are also 63 years old.
Your name is Ron, and you are also 23 years old.
Your name is Joel, and you are also 51 years old.
Copier après la connexion

Bonne réponse


Cela dépend de la version de Python que vous utilisez.

Avant Python 3.6

Le dictionnaire utilise la fonction de hachage sous-jacente pour le tri. Plusieurs types ont des hachages salés, cela signifie donc que vous obtenez un ordre différent à chaque appel.

Python 3.6+

Les dictionnaires sont classés par ordre d'insertion, c'est-à-dire que le dictionnaire se souvient de l'ordre dans lequel les éléments sont insérés. Extrait de Documents :

Python 3.7

Guido van Rossum a annoncé dans que toutes les implémentations de Python doivent conserver l'ordre d'insertion à partir de Python 3.7.

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!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!