Maison > développement back-end > Tutoriel Python > Python implémente une méthode pour extraire des sous-ensembles d'un dictionnaire (code)

Python implémente une méthode pour extraire des sous-ensembles d'un dictionnaire (code)

不言
Libérer: 2018-10-23 16:11:49
avant
2081 Les gens l'ont consulté
Le contenu de cet article concerne la méthode (code) d'extraction de sous-ensembles du dictionnaire en Python. 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 qui est lui-même un sous-ensemble d'un autre dictionnaire.

2. Solution

Elle peut être facilement résolue en utilisant la dérivation par dictionnaire.

prices={
'a':1.1,
'b':2.2,
'c':3.3,
'd':4.4,
'e':5.5
}
p1={key:value for key ,value in prices.items() if value>3}
print(p1)

names={'a','b'}
p2={key:value for key,value in prices.items() if key in names}
print(p2)
Copier après la connexion

Résultat :

{'c': 3.3, 'd': 4.4, 'e': 5.5}
{'a': 1.1, 'b': 2.2}
Copier après la connexion

3. Analyse

La plupart des problèmes pouvant être résolus par la dérivation de dictionnaire peuvent également être résolus. en créant des séquences d'éléments Regroupez-les puis transmettez-les à la fonction dict() pour les compléter, par exemple :

#结果为:{'c': 3.3, 'd': 4.4, 'e': 5.5}
p3=dict((key,value) for key,value in prices.items() if value>3)
Copier après la connexion

Mais la méthode de dérivation du dictionnaire est beaucoup plus claire et s'exécute en réalité beaucoup plus rapidement. (La première efficacité sera presque 2 fois plus rapide)

Parfois, il existe plusieurs façons de réaliser la même chose en même temps. Par exemple, le deuxième exemple peut également être réécrit comme :

#结果为:{'b': 2.2, 'a': 1.1}
p4={key:prices[key] for key in prices.keys() & names}
Copier après la connexion

Cependant, les tests montrent que cette solution est presque 1,6 fois plus lente que la première. Ainsi, lorsqu’il existe plusieurs solutions à un même problème, vous pouvez faire un petit test pour étudier le temps passé.

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