Duplikate aus Python-Listen entfernen: 8 bewährte Methoden
Eine Liste ist eine fundamentale Python-Datenstruktur, die eine geordnete Sammlung von Items wie Integers, Strings oder Custom Objects hält. Sie ist das Python-Äquivalent eines Arrays in anderen Sprachen.
Nachfolgend finden Sie bewährte Techniken, um Duplikate aus einer Liste zu entfernen, während Reihenfolge und Lesbarkeit gewahrt bleiben.
- Duplikate mit einem Set entfernen
- Duplikate mit temporärer Liste entfernen
- Duplikate mit OrderedDict (oder dict.fromkeys) entfernen
- Duplikate mit einfachem for-Loop entfernen
- Duplikate via List Comprehension entfernen
- Duplikate mit NumPy's unique() entfernen
- Duplikate mit Pandas' unique() entfernen
- Duplikate mit enumerate() und List Comprehension entfernen
Duplikate mit einem Set entfernen
Pythons eingebaute set()-Funktion eliminiert Duplikate, indem sie nur einzigartige Elemente zurückgibt. Konvertieren Sie die Liste in ein Set und zurück in eine Liste, um das Sammlungsformat zu bewahren.
my_list = [1,1,2,3,2,2,4,5,6,2,1] my_final_list = set(my_list) print(list(my_final_list))
Output:
[1, 2, 3, 4, 5, 6]
Duplikate mit temporärer Liste entfernen
Dieser Ansatz erstellt eine leere Liste, iteriert über die Original-Liste und fügt nur Items hinzu, die noch nicht gesehen wurden.
my_list = [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
print("List Before ", my_list)
temp_list = []
for i in my_list:
if i not in temp_list:
temp_list.append(i)
my_list = temp_list
print("List After removing duplicates ", my_list)
Output:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2] List After removing duplicates [1, 2, 3, 4, 5, 6]
Duplikate mit OrderedDict (oder dict.fromkeys) entfernen
Ab Python 3.5+ bewahrt ein einfaches dict die Einfügereihenfolge, sodass dict.fromkeys() genutzt werden kann, um einzigartige Werte in Reihenfolge zu behalten.
my_list = ['a','x','a','y','a','b','b','c'] my_final_list = dict.fromkeys(my_list) print(list(my_final_list))
Output:
['a', 'x', 'y', 'b', 'c']
Duplikate mit einfachem for-Loop entfernen
Durchlaufen Sie die Liste und fügen Sie Items nur einer neuen Liste hinzu, wenn sie noch nicht vorgekommen sind.
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinallist = []
for i in my_list:
if i not in myFinallist:
myFinallist.append(i)
print(myFinallist)
Output:
[1, 2, 3, 4, 5, 6]
Duplikate via List Comprehension entfernen
List Comprehensions bieten prägnante Syntax bei Erhalt der Lesbarkeit.
my_list = [1,2,2,3,1,4,5,1,2,6] my_finallist = [] [my_finallist.append(n) for n in my_list if n not in my_finallist] print(my_finallist)
Output:
[1, 2, 3, 4, 5, 6]
Duplikate mit NumPy's unique() entfernen
NumPys unique()-Funktion gibt die sortierten einzigartigen Elemente eines Arrays zurück.
import numpy as np my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = np.unique(my_list).tolist() print(myFinalList)
Output:
[1, 2, 3, 4, 5, 6]
Duplikate mit Pandas' unique() entfernen
Ähnlich bietet Pandas eine leichte unique()-Methode, die auf listen-ähnlichen Objekten funktioniert.
import pandas as pd my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = pd.unique(my_list).tolist() print(myFinalList)
Output:
[1, 2, 3, 4, 5, 6]
Duplikate mit enumerate() und List Comprehension entfernen
Die Kombination von enumerate() mit einer List Comprehension erlaubt das Entfernen von Duplikaten bei Erhalt des ersten Vorkommens jedes Elements.
my_list = [1,2,2,3,1,4,5,1,2,6] my_finallist = [i for j, i in enumerate(my_list) if i not in my_list[:j]] print(my_finallist)
Output:
[1, 2, 3, 4, 5, 6]
Zusammenfassung
set()ist der schnellste Weg, Duplikate zu droppen, bewahrt aber keine Reihenfolge.- Temporäre Listen oder for-Loops behalten die Original-Reihenfolge, sind aber weniger prägnant.
- Ordered Dictionaries oder
dict.fromkeys()bewahren Reihenfolge und sind sehr effizient. - NumPy und Pandas bieten Einzeiler-Lösungen für numerische oder DataFrame-lastige Workflows.
- List Comprehensions mit
enumerate()bieten einen funktionalen Stil, der sowohl lesbar als auch reihenfolgewahrend ist.
Python
- Python-Datentypen meistern: Praxisleitfaden
- Python-Operatoren meistern: Umfassender Leitfaden
- Python pass-Statement meistern: Praxisleitfaden
- Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
- Pythons range()-Funktion meistern: Von Grundlagen bis zu fortgeschrittenen Anwendungsfällen
- Python Lists meistern: Append, Sort, Length & List Comprehensions (Praxis-Guide)
- Durchschnitt berechnen in Python: Praktischer Leitfaden
- Python list.count(): Experten-Guide mit praktischen Beispielen
- Elemente aus Python-Listen entfernen: remove(), pop(), clear() und del
- Python list.index(): Element-Positionen finden mit praktischen Beispielen