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

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

Mary-Kate Olsen
Libérer: 2024-11-26 13:30:10
original
518 Les gens l'ont consulté

How Can I Efficiently Remove Duplicate Dictionaries from a Python List?

Suppression des dictionnaires en double d'une liste en Python

Lorsque vous traitez des listes de dictionnaires en Python, vous pouvez rencontrer le besoin de supprimer les doublons. Que les doublons partagent des paires clé-valeur identiques ou un ordre clé-valeur précis, une approche efficace est nécessaire.

Utiliser le hachage pour la suppression des doublons

Le one-liner suivant supprime efficacement les dictionnaires en double en fonction de leurs paires clé-valeur :

[dict(t) for t in {tuple(d.items()) for d in l}]
Copier après la connexion

Cette approche consiste à convertir chaque dictionnaire en un tuple de ses paires clé-valeur. Étant donné que les tuples peuvent être hachés, vous pouvez exploiter la structure de données définie pour éliminer les doublons. L'ensemble résultant contient des tuples uniques, qui sont ensuite reconvertis en dictionnaires.

Préserver l'ordre

Si l'ordre des dictionnaires est important, l'approche ci-dessus ne suffira pas. Au lieu de cela, une méthode plus explicite peut être utilisée :

l = [{'a': 123, 'b': 1234},
        {'a': 3222, 'b': 1234},
        {'a': 123, 'b': 1234}]

seen = set()
new_l = []
for d in l:
    t = tuple(d.items())
    if t not in seen:
        seen.add(t)
        new_l.append(d)

print(new_l)
Copier après la connexion

Ce code accumule les dictionnaires non dupliqués dans une nouvelle liste tout en conservant leur ordre d'origine. Il utilise un ensemble pour garder une trace des tuples rencontrés afin de garantir l'unicité.

Remarque :

Il est important de noter que dans certains cas, deux dictionnaires avec des clés et des valeurs identiques peut ne pas donner le même tuple. Cela se produit lorsque les dictionnaires ont des séquences d'ajout/suppression de clés différentes. Si cela pose problème dans votre scénario, pensez à trier les éléments de chaque dictionnaire avant de créer le tuple.

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