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

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

Linda Hamilton
Libérer: 2024-11-01 11:29:02
original
245 Les gens l'ont consulté

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

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

Python 3 :

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

Python 2.5/2.6 :

<code class="python">dict((v['id'],v) for v in L).values()</code>
Copier après la connexion

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

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!

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