Maison  >  Article  >  développement back-end  >  Comprendre l'ordre des dictionnaires Python

Comprendre l'ordre des dictionnaires Python

WBOY
WBOYavant
2024-02-09 20:42:04547parcourir

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.")

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.

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.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer