Maison >développement back-end >Tutoriel Python >Comment puis-je filtrer les dictionnaires Python en fonction de conditions à l'aide de compréhensions de dictés ?

Comment puis-je filtrer les dictionnaires Python en fonction de conditions à l'aide de compréhensions de dictés ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-13 02:27:02822parcourir

How Can I Filter Python Dictionaries Based on Conditions Using Dict Comprehensions?

Filtrage des dictionnaires en fonction de conditions à l'aide de compréhensions de dictés

Étant donné un dictionnaire avec des paires clé-valeur, il est courant de filtrer des éléments spécifiques en fonction sur certains critères. Les dictionnaires Python proposent plusieurs méthodes de filtrage, y compris l'utilisation de techniques de compréhension.

Approche de compréhension des dictés

Une solution élégante pour filtrer un dictionnaire consiste à comprendre des dictés. Cette syntaxe vous permet de créer un nouveau dictionnaire en appliquant une condition à chaque élément du dictionnaire d'origine. Le dictionnaire résultant contiendra uniquement les clés et les valeurs qui répondent aux critères spécifiés.

Par exemple, pour filtrer un dictionnaire (points) contenant des coordonnées de points (« x », « y ») et sélectionner ceux dont les valeurs sont inférieures à 5 pour 'x' et 'y', vous pouvez utiliser le code suivant :

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

Dans les versions Python antérieures à 2.7, vous pouvez utiliser iteritems() au lieu de items() :

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

Filtrage d'éléments avec compréhension de liste

Bien que les compréhensions de dict offrent une approche concise, vous pouvez également filtrer les éléments à l'aide de compréhensions de liste. Cependant, cette méthode nécessite des étapes supplémentaires pour construire le nouveau dictionnaire :

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]

Ce code crée d'abord une liste d'éléments qui remplissent la condition, puis construit le nouveau dictionnaire (points_small) en parcourant la liste. Bien que cela ne soit pas aussi efficace que l'utilisation d'une compréhension de dicté, cela peut être utile lorsqu'une manipulation plus approfondie des éléments filtrés est nécessaire avant de créer le nouveau dictionnaire.

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