Maison > développement back-end > Tutoriel Python > Comment filtrer efficacement un dictionnaire en fonction de conditions arbitraires en Python ?

Comment filtrer efficacement un dictionnaire en fonction de conditions arbitraires en Python ?

Patricia Arquette
Libérer: 2024-11-16 10:15:03
original
863 Les gens l'ont consulté

How can I efficiently filter a dictionary based on arbitrary conditions in Python?

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)}
Copier après la connexion

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]
Copier après la connexion

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}
Copier après la connexion

Python 2 (2.7) :

points_small = {k: v for k, v in points.iteritems() if v[0] < 5 and v[1] < 5}
Copier après la connexion

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal