Maison >développement back-end >Tutoriel Python >Comment élaguer efficacement un dictionnaire en fonction d'une condition personnalisée ?

Comment élaguer efficacement un dictionnaire en fonction d'une condition personnalisée ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-15 01:29:02573parcourir

How can you efficiently prune a dictionary based on a custom condition?

Élagage d'un dictionnaire en fonction d'une condition personnalisée

Lorsque vous travaillez avec des dictionnaires, il est souvent utile d'affiner leur contenu en fonction de critères spécifiés. Supposons que vous disposiez d'un dictionnaire de points représentés sous forme de tuples et que vous souhaitiez extraire uniquement les points dont les coordonnées x et y sont inférieures à 5.

Traditionnellement, une approche consiste à parcourir les éléments du dictionnaire à l'aide d'un compréhension de la liste :

points_small = {}
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]

Bien que cette méthode soit fonctionnelle, il existe une solution plus succincte utilisant un dictionnaire compréhension :

points_small = {k: v for k, v in points.items() if v[0] < 5 and v[1] < 5}

Cette expression concise génère un nouveau dictionnaire où les clés et les valeurs satisfont à la condition spécifiée. De même, dans Python 2.7 et versions ultérieures, la syntaxe suivante peut être utilisée :

points_small = {k: v for k, v in points.iteritems() if v[0] < 5 and v[1] < 5}

En employant des compréhensions de dictionnaires, vous bénéficiez d'un moyen élégant et efficace pour filtrer les dictionnaires en fonction de conditions arbitraires, offrant ainsi une approche plus rationalisée de manipulation de données.

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:
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