Maison  >  Article  >  développement back-end  >  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)

不言
不言avant
2018-10-23 16:11:492035parcourir
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)

Résultat :

{'c': 3.3, 'd': 4.4, 'e': 5.5}
{'a': 1.1, 'b': 2.2}

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)

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}

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!

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