Duplikate aus Liste entfernen in Python

Sahil Bhosale 18 Juli 2021
  1. Entfernen von Duplikaten aus einer Liste mit der Funktion set() in Python
  2. Duplikate entfernen und Ordnung in einer Liste mit OrderDict in Python beibehalten
Duplikate aus Liste entfernen in Python

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.

  1. 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.
  2. 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 Bhosale avatar Sahil Bhosale avatar

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.

LinkedIn

Verwandter Artikel - Python List