Maison  >  Article  >  développement back-end  >  Comment garder un dictionnaire en ordre en python (code)

Comment garder un dictionnaire en ordre en python (code)

不言
不言avant
2018-10-11 14:24:563094parcourir

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])

Résultat :

a 1
b 2
c 3
d 4

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)

Résultat :

{"a": 1, "b": 2, "c": 3, "d": 4}
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!

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