Python – Doppelte Einträge aus einer Liste entfernen

Hier kommt ein kleiner Python Trick, mit dem man Duplikate aus einer Liste entfernen kann. Nehmen wir an wir haben so eine Liste wie diese hier. In der Liste befinden sich einfach ein paar hübsche europäische Städte, blöderweise kommen aber in der Liste einige Städte doppelt vor.

meine_liste = ['Paris', 'Rome', 'London', 'London', 'Berlin', 'Barcelona', 'Amsterdam', 'Amsterdam', 'St. Petersburg', 'Istanbul', 'Athens']

Um die doppelten Einträge zu entfernen machen wir jetzt folgendes:

Als erstes wandeln wir die Liste in ein Dictionary um. Warum wir das machen, ergibt sich gleich. So ein Dictionary besteht einfach gesagt aus Paaren, die immer aus einem Schlüssel und einem Wert bestehen. Und Dictionaries haben die praktische Eigenschaft, dass Schlüssel niemals doppelt vorkommen können. Das heißt: Wenn wir aus unserer Liste ein Dictionary machen, werden die Duplikate automatisch rausgeschmissen, einfach weil Dictionaries doppelte Werte nicht erlauben.

In der Praxis nutzen wir dafür jetzt den Befehl dict.fromkeys(). Der erzeugt aus einer Liste von Keys ein Dictionary.

mein_dict = dict.fromkeys(meine_liste)

Wir wollen als Ergebnis jetzt aber eine Liste haben und deshalb wandeln wir das neue Dictionary jetzt einfach wieder in eine Liste um. Das geht mit dem Befehl list().

mein_dict = dict.fromkeys(meine_liste)
meine_liste = list(mein_dict)

print(meine_liste)
# Ergebnis: 
['Paris', 'Rome', 'London', 'Berlin', 'Barcelona', 'Amsterdam', 'St. Petersburg', 'Istanbul', 'Athens']

Als Ergebnis bekommen wir jetzt unsere alte Liste zurück – und zwar ganz ohne doppelte Einträge. Und damit haben wir es auch eigentlich schon geschafft. Wenn ihr wollt, könnt ihr das ganze sogar jetzt noch weiter verknappen und auf eine Zeile schreiben.

meine_liste = list(dict.fromkeys(meine_liste))

Ja und so einfach kann man also Duplikate aus Listen in Python entfernen.

Euch vielen Dank fürs Zuschauen, bleibt neugierig und bis bald!