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!