Comment garder un dictionnaire en ordre en python (code)

不言
Libérer: 2018-10-11 14:24:56
avant
3127 Les gens l'ont consulté

Ce que cet article vous apporte concerne la façon dont Python maintient les dictionnaires en ordre (code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

1. Exigences

Nous voulons créer un dictionnaire, et en même temps, lors de l'itération ou de la sérialisation du dictionnaire, nous pouvons également contrôler l'ordre des éléments.

2. Solution

Pour contrôler l'ordre des éléments dans le dictionnaire, vous pouvez utiliser la classe OrderedDict dans le module collections. Lors d’une itération sur un dictionnaire, il le fait strictement dans l’ordre dans lequel les éléments ont été initialement ajoutés.

from collections import OrderedDict
d=OrderedDict()
d['a']=1
d['b']=2
d['c']=3
d['d']=4
#根据插入删除输出
for key in d:
print(key,d[key])
Copier après la connexion

Résultat :

a 1
b 2
c 3
d 4
Copier après la connexion

OrderedDict est particulièrement utile lorsque vous souhaitez créer une structure de mappage qui peut être ultérieurement sérialisée ou encodée dans un autre format. Par exemple : Si vous souhaitez contrôler avec précision l'ordre de chaque champ lors de l'encodage JSON, il vous suffit alors de construire d'abord les données dans OrderedDict :

from collections import OrderedDict
import json

d=OrderedDict()
d['a']=1
d['b']=2
d['c']=3
d['d']=4
j=json.dumps(d)
print(j)
Copier après la connexion

Résultat :

{"a": 1, "b": 2, "c": 3, "d": 4}
Copier après la connexion
OrderedDict maintient un interne Une liste doublement chaînée, qui organise les positions clés en fonction de l'ordre dans lequel les éléments sont ajoutés. Le premier élément nouvellement ajouté est placé à la fin de la liste chaînée, puis les clés existantes sont réaffectées sans changer la position des clés.

Veuillez noter : OrderedDict est 2 fois la taille d'un dictionnaire normal. Cela est dû à la liste chaînée supplémentaire qu’il crée. Par conséquent, si vous envisagez de créer une structure de données impliquant un grand nombre d'instances OrderedDict (par exemple, lire 100 000 lignes d'un fichier CSV dans une liste OrderedDict), vous devrez effectuer une analyse des exigences de l'application pour déterminer les avantages. d'utiliser OrderedDict. Les inconvénients de la surcharge de mémoire supplémentaire peuvent-ils être surmontés ?

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:segmentfault.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