Mam następującą strukturę Python 2.7 słownika danych (ja nie kontrolują dane źródłowe - pochodzi z innego systemu, jak jest):usuwanie duplikatów ze słownika
{112762853378: {'dst': ['10.121.4.136'], 'src': ['1.2.3.4'], 'alias': ['www.example.com'] }, 112762853385: {'dst': ['10.121.4.136'], 'src': ['1.2.3.4'], 'alias': ['www.example.com'] }, 112760496444: {'dst': ['10.121.4.136'], 'src': ['1.2.3.4'] }, 112760496502: {'dst': ['10.122.195.34'], 'src': ['4.3.2.1'] }, 112765083670: ... }
Do słownika klucze zawsze będzie wyjątkowy. Dst, src i alias mogą być duplikatami. Wszystkie rekordy będą zawsze miały dst i src, ale nie każdy rekord będzie musiał mieć alias widziany w trzecim rekordzie.
W przykładowych danych usunięty zostanie jeden z dwóch pierwszych rekordów (nie ma znaczenia, który z nich). Trzeci rekord będzie uważany za wyjątkowy, ponieważ chociaż dst i src są takie same, to brakuje im aliasu.
Moim celem jest usunięcie wszystkich rekordów, w których dst, src i alias zostały zduplikowane - niezależnie od klucza.
W jaki sposób ten debiutant osiągnąć?
Ponadto, moje ograniczone rozumienie Pythona interpretuje strukturę danych jako słownik z wartościami przechowywanymi w słownikach ... dyktowaniem dykt, czy to prawda?
To dobry punkt wyjścia, ale czuję się zmuszony wskazać, że będzie on powolny dla dużych zbiorów danych, ponieważ z każdą pętlą tworzy nową listę wartości i wykonuje liniowe przeszukiwanie nad nią. – senderle
To działało z prostotą i pięknem. –
@senderle: Doceniam twoją myśl i komentarz dotyczący prędkości i w razie potrzeby uwzględniam ją. Czy chcesz rozszerzyć tę odpowiedź, aby zwiększyć wydajność? –