Filtrer des dictionnaires avec des conditions arbitraires
Les dictionnaires fournissent un moyen puissant d'organiser et de stocker des données en Python. Cependant, il est souvent nécessaire de filtrer certains éléments en fonction de conditions spécifiques.
Considérons un scénario dans lequel vous disposez d'un dictionnaire de points avec des coordonnées (x, y) :
points = {'a': (3, 4), 'b': (1, 2), 'c': (5, 5), 'd': (3, 3)}
Pour créer un nouveau dictionnaire contenant des points avec des valeurs x et y inférieures à 5, vous pouvez d'abord tenter une approche basée sur des boucles :
for item in [i for i in points.items() if i[1][0] < 5 and i[1][1] < 5]: points_small[item[0]] = item[1]
Cependant, il existe une solution plus élégante et concise utilisant les compréhensions de dict :
Python 3 :
points_small = {k: v for k, v in points.items() if v[0] < 5 and v[1] < 5}
Python 2 (2.7) :
points_small = {k: v for k, v in points.iteritems() if v[0] < 5 and v[1] < 5}
Les compréhensions de dict offrent un aperçu concis et une syntaxe lisible pour filtrer les éléments du dictionnaire. Ils peuvent améliorer considérablement la maintenabilité et les performances du code par rapport aux approches traditionnelles basées sur des boucles.
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!