Die Python-Methode zur Listendeduplizierung, die Sie kennen sollten

高洛峰
Freigeben: 2017-02-21 10:50:18
Original
2247 Leute haben es durchsucht

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'
]
Nach dem Login kopieren

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'])
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

Mehr Für weitere Artikel Im Zusammenhang mit Python-Listen-Deduplizierungsmethoden, die Sie kennen sollten, achten Sie bitte auf die chinesische PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!