Vorwort
Die Deduplizierung von Listen ist ein häufiges Problem beim Schreiben von Python-Skripten, denn unabhängig davon, woher die Quelldaten stammen, kann es bei der Konvertierung in eine Liste zu Problemen kommen zu erwarten Das Ergebnis ist nicht unser Endergebnis. Das häufigste Problem ist, dass die Liste doppelte Elemente enthält. Das erste, was wir tun müssen, ist die Deduplizierung.
Beginnen wir mit der einfachsten Methode, indem wir den in Python integrierten Datentypsatz verwenden.
Angenommen, unsere Listendaten lauten wie folgt:
level_names = [ u'Second Level', u'Second Level', u'Second Level', u'First Level', u'First Level' ]
Weil die Elemente der Menge nicht wiederholt werden können , also werden beim Konvertieren einer Liste in eine Menge automatisch doppelte Elemente entfernt. Der Code lautet wie folgt:
>>> the_list = set(level_names) >>> print(the_list) set([u'Second Level', u'First Level'])
Der Nachteil dieser Methode ist, dass die vorherige Listenreihenfolge bei der Konvertierung in eine Liste nicht gespeichert werden kann. Vielleicht denken einige Freunde, dass sie so einfach ist. Wenn Sie also in allgemeinen Interviewfragen Duplikate aus einer Liste entfernen möchten, schreiben Sie normalerweise so etwas:
Bitte notieren Sie die Methode zum Entfernen von Duplikaten aus der Liste (kann nicht verwendet werden). )
Bitte notieren Sie es. Das Set kann nicht mehr verwendet werden, daher funktioniert dieser Trick manchmal immer noch nicht. Wir haben natürlich keine Probleme.
Wir alle wissen, dass Listen durchlaufen werden können, und das Problem wird einfacher, wenn wir eine leere Liste definieren, die Liste dann mit Daten durchlaufen und beim Durchlaufen eine Beurteilung hinzufügen Fügen Sie in der leeren Liste „Gehe hinein“ hinzu und werfen Sie es weg, wenn Sie es haben. Der Code lautet wie folgt:
the_list = [] for level in level_names: if level not in the_list: the_list.append(level) print(the_list)
Denken Sie an diese Methode? ist in Ordnung, aber diese Methode kann mit gewöhnlichen kleinen Listen umgehen. Es gibt kein Problem mit Listen. Wenn Sie jedoch auf eine sehr große Liste stoßen, können Sie nicht das tun, was Sie möchten, da die Liste in the_list sehr groß wird, was Auswirkungen hat Die Effizienz bei der Beurteilung wird langsamer, da die Liste in Indexreihenfolge durchsucht wird.
Vielleicht möchten Sie fragen: Was soll ich tun, wenn ich auf eine große Liste stoße? Gibt es eine tollere Möglichkeit? Lassen Sie uns natürlich fortfahren, da die Verwendung von Listen die Effizienz beeinträchtigt. Wir verwenden Mengen. Dann fragen Sie sich vielleicht, ob die Hash-Funktion bei der Suche nach Werten schneller ist Ist die Position ungeordnet, dauert es nur einmal, ob jemand online nach Elementen in Listen und Mengen sucht 52 Sekunden zur Verwendung des Sets. Mehr dazu gibt es nicht zu sagen:
the_list = [] the_set = set() for level in level_names: if level not in the_set: the_set.add(level) the_list.append(level) print(the_list)
Mehr Für weitere Artikel Im Zusammenhang mit Python-Listen-Deduplizierungsmethoden, die Sie kennen sollten, achten Sie bitte auf die chinesische PHP-Website!