Duplikate aus Liste entfernen in Python
-
Entfernen von Duplikaten aus einer Liste mit der Funktion
set()
in Python -
Duplikate entfernen und Ordnung in einer Liste mit
OrderDict
in Python beibehalten
Eine Liste in Python ist eine Datenstruktur, die verwendet wird, um Daten in einer bestimmten Reihenfolge zu speichern. Die Liste kann Daten verschiedener Typen speichern, z. B. int, float, string, eine andere Liste, usw. Listen sind veränderbar, d. h. einmal erstellte Werte können später geändert werden. Sie wird durch eckige Klammern []
dargestellt.
myList = [2, 1, 2, 3, 0, 6, 7, 6, 4, 8]
print(myList)
Ausgabe:
[2, 1, 2, 3, 0, 6, 7, 6, 4, 8]
Sie können doppelte Elemente aus der obigen Liste entfernen, indem Sie eine for
-Schleife wie unten gezeigt verwenden.
myList = [2, 1, 2, 3, 0, 6, 7, 6, 4, 8]
resultantList = []
for element in myList:
if element not in resultantList:
resultantList.append(element)
print(resultantList)
Ausgabe:
[2, 1, 3, 0, 6, 7, 4, 8]
Wenn Sie nicht so viel Code schreiben wollen, dann gibt es zwei gängige Möglichkeiten, doppelte Elemente aus einer Liste in Python zu entfernen.
- Wenn Sie die Reihenfolge der Elemente innerhalb einer Liste nach dem Entfernen der doppelten Elemente nicht beibehalten wollen, dann können Sie eine
Set
-Datenstruktur verwenden. - Wenn Sie die Reihenfolge der Elemente innerhalb einer Liste beibehalten wollen, nachdem Sie doppelte Elemente entfernt haben, dann können Sie etwas namens
OrderedDict
verwenden.
Entfernen von Duplikaten aus einer Liste mit der Funktion set()
in Python
Um Duplikate aus einer Liste zu entfernen, können wir eine andere Datenstruktur namens Set
verwenden. Ein Set ist ein ungeordneter Datentyp, der nur eindeutige Werte enthält. Die Reihenfolge, in der ein Set die Werte speichert, unterscheidet sich von der Reihenfolge, in der Sie die Elemente in ein Set eingefügt haben könnten. Sets werden mit geschweiften Klammern {}
dargestellt.
Wenn Sie also die in der Menge gespeicherten Elemente ausgeben, wird die Reihenfolge der Ausgabe anders sein. Das ist der Grund, warum eine Indizierung nicht auf einer Menge durchgeführt werden kann, weil sie ungeordnet ist.
mySet = {80, 10, 50, 18, 3, 50, 8, 18, 9, 8}
print(mySet)
Ausgabe:
{3, 8, 9, 10, 80, 18, 50}
Beachten Sie, wie sich die Reihenfolge der Elemente geändert hat, nachdem wir die Elemente gedruckt haben.
In einem Set sind keine Duplikate erlaubt, d. h. wenn das gleiche Element mehrfach vorhanden ist, wird es vom Set als ein Element betrachtet. Das ist der Grund, warum wir in Python ein Set verwenden, um doppelte Elemente aus einer Liste zu entfernen.
original_list = [80, 10, 50, 18, 3, 50, 8, 18, 9, 8]
print("Original List is: ", original_list)
convert_list_to_set = set(original_list)
print("Set is: ", convert_list_to_set)
new_list = list(convert_list_to_set)
print("Resultant List is: ", new_list)
original_list = list(convert_list_to_set)
print("Removed duplicates from original list: ", original_list)
Ausgabe:
Original List is: [80, 10, 50, 18, 3, 50, 8, 18, 9, 8]
Set is: {3, 8, 9, 10, 80, 18, 50}
Resultant List is: [3, 8, 9, 10, 80, 18, 50]
Removed duplicates from original list: [3, 8, 9, 10, 80, 18, 50]
Wir konvertieren eine Liste in eine Menge, indem wir die Funktion set()
anwenden. Dann konvertieren wir die konvertierte Menge, die die Duplikate entfernt hat, in eine Liste, indem wir die Funktion list()
anwenden.
Duplikate entfernen und Ordnung in einer Liste mit OrderDict
in Python beibehalten
Das Problem bei der Verwendung eines Sets zum Entfernen doppelter Elemente ist, dass es die Elemente nicht in einer bestimmten Reihenfolge speichert. Wenn Sie sich also nicht um die Reihenfolge kümmern, in der die Elemente in der resultierenden Liste gespeichert werden, d.h. der Liste, die Sie nach dem Entfernen von Duplikaten erstellt haben, dann können Sie in diesem Fall die Datenstruktur Set
verwenden.
Wenn Sie aber die Reihenfolge der Elemente innerhalb einer Liste nach dem Entfernen der Duplikate beibehalten wollen, dann können Sie in Python OrderedDict
verwenden. Das OrderDict
bewahrt die Reihenfolge, in der die Elemente in die Liste eingefügt wurden. Um OrderDict zu verwenden, müssen Sie es zunächst aus dem collections
-Modul in Python importieren from collections import OrderedDict
.
from collections import OrderedDict
myList = [2, 1, 2, 3, 0, 6, 7, 6, 8, 0, 4, 8]
final_list = list(OrderedDict.fromkeys(myList))
print(final_list)
Ausgabe:
[2, 1, 3, 0, 6, 7, 8, 4]
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedInVerwandter Artikel - Python List
- Alle Vorkommen eines Elements aus einer Liste in Python entfernen
- Konvertieren eines Dictionaries in eine Liste in Python
- Wie erhält man den Durchschnitt einer Liste in Python
- Was ist der Unterschied zwischen den Listenmethoden append und extend
- Wie man eine Liste in Python in eine Zeichenkette konvertiert