Maison  >  Article  >  développement back-end  >  Comment supprimer efficacement les dictionnaires en double d’une liste Python ?

Comment supprimer efficacement les dictionnaires en double d’une liste Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-01 11:29:02144parcourir

How to Efficiently Remove Duplicate Dictionaries from a Python List?

Dictionnaires uniques dans les listes Python

Les listes de dictionnaires sont courantes dans les applications Python. Cependant, la gestion des dictionnaires en double peut s'avérer difficile. Cet article explique comment supprimer efficacement les doublons et obtenir une liste de dictionnaires uniques.

Considérez une liste de dictionnaires :

<code class="python">L = [
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 2, 'name': 'hanna', 'age': 30}
]</code>

Approche du problème

Pour dédupliquer une liste de dictionnaires, une approche simple consiste à parcourir la liste et à comparer chaque dictionnaire aux autres. Cependant, ce processus peut être coûteux en termes de calcul pour les grandes listes.

Utilisation d'un dictionnaire temporaire

Une solution plus efficace exploite un dictionnaire temporaire pour gérer la déduplication. La clé du dictionnaire est définie sur le champ id de chaque dictionnaire et la valeur est définie sur le dictionnaire lui-même. Cette opération filtre efficacement les doublons car chaque identifiant unique correspondra à une seule entrée du dictionnaire.

Récupération des dictionnaires uniques

Une fois le dictionnaire temporaire renseigné, les valeurs (qui représentent les dictionnaires uniques) peuvent être récupérés à l'aide de la méthode values().

Implémentation de Python

Python 2.7 :

<code class="python">{v['id']:v for v in L}.values()</code>

Python 3 :

<code class="python">list({v['id']:v for v in L}.values())</code>

Python 2.5/2.6 :

<code class="python">dict((v['id'],v) for v in L).values()</code>

Ces solutions concises aboutissent à une liste de solutions uniques dictionnaires :

<code class="python">[
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 2, 'name': 'hanna', 'age': 30}
]</code>

Cette approche supprime efficacement les doublons en exploitant un dictionnaire temporaire pour identifier et extraire les valeurs de dictionnaire uniques.

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