Ich habe nach einer set()
-like-Methode gesucht, um eine Liste zu deduplizieren, mit der Ausnahme, dass die Elemente, die in der ursprünglichen Liste stehen, nicht hashbar sind (sie sind dict
s).
Ich habe eine Weile nach etwas Angemessenem gesucht und am Ende habe ich diese kleine Funktion geschrieben:
%Vor% Vorausgesetzt, dass ein key
korrekt angegeben ist und ein string
ist, erledigt diese Funktion ihre Aufgabe ziemlich gut. Unnötig zu sagen, wenn ich etwas über ein integriertes oder ein Standard-Bibliotheksmodul erfahre, das die gleiche Funktionalität erlaubt, werde ich meine kleine Routine gerne zugunsten einer standardmäßigen und robusten Wahl aufgeben.
Ist Ihnen diese Implementierung bekannt?
- Hinweis
Der folgende Einzeiler wurde aus dieser Antwort gefunden ,
%Vor% ist zwar schlau, funktioniert aber nicht, weil ich mit Objekten als verschachteltes dict
s arbeiten muss.
- Beispiel
Aus Gründen der Übersichtlichkeit folgt hier ein Beispiel für die Verwendung einer solchen Routine:
%Vor% Sie wählen nur die erste dict
in Ihrer Liste für jeden einzelnen Wert für key
aus. itertools.groupby
ist das integrierte Tool, das das für Sie erledigen kann - sort and Gruppiere nach key
und nimm nur die erste von jeder Gruppe:
Diese Antwort hilft Ihnen dabei, ein allgemeineres Problem zu lösen - suchen Sie nach einzigartigen Elementen und nicht nach einem einzelnen Attribut ( id
in Ihrem Fall), aber wenn ein geschachteltes Attribut unterscheidet
Der folgende Code gibt eine Liste der Indizes der einzelnen Elemente zurück
%Vor%Tags und Links python python-3.x duplicates