Dubbele Elementen Verwijderen uit een Python Lijst
Een lijst is een fundamentele Python-datastructuur die een geordende verzameling items vasthoudt zoals gehele getallen, strings of custom-objecten. Het is het Python-equivalent van een array in andere talen.
Hieronder zijn bewezen technieken om dubbele elementen uit een lijst te verwijderen terwijl volgorde en leesbaarheid behouden blijven.
- Dubbelen verwijderen met een set
- Dubbelen verwijderen met een tijdelijke lijst
- Dubbelen verwijderen met OrderedDict (of dict.fromkeys)
- Dubbelen verwijderen met een simpele for-lus
- Dubbelen verwijderen via list comprehension
- Dubbelen verwijderen met NumPy's unique()
- Dubbelen verwijderen met Pandas' unique()
- Dubbelen verwijderen met enumerate() en list comprehension
Dubbelen Verwijderen met een Set
Python's ingebouwde set() functie elimineert duplicaten door alleen unieke elementen te retourneren. Converteer de lijst naar een set, en dan terug naar een lijst om het verzamel-formaat te behouden.
mijn_lijst = [1,1,2,3,2,2,4,5,6,2,1] mijn_eind_lijst = set(mijn_lijst) print(list(mijn_eind_lijst))
Output:
[1, 2, 3, 4, 5, 6]
Dubbelen Verwijderen met een Tijdelijke Lijst
Deze aanpak maakt een lege lijst, itereert over de originele lijst en voegt alleen items toe die nog niet gezien zijn.
mijn_lijst = [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
print("Lijst Voor ", mijn_lijst)
tijdelijke_lijst = []
for i in mijn_lijst:
if i not in tijdelijke_lijst:
tijdelijke_lijst.append(i)
mijn_lijst = tijdelijke_lijst
print("Lijst Na Dubbelen Verwijderen ", mijn_lijst)
Output:
Lijst Voor [1, 2, 3, 1, 2, 4, 5, 4, 6, 2] Lijst Na Dubbelen Verwijderen [1, 2, 3, 4, 5, 6]
Dubbelen Verwijderen met OrderedDict (of dict.fromkeys)
Voor Python 3.5+ behoudt een gewone dict de invoegvolgorde, dus dict.fromkeys() kan gebruikt worden om unieke waarden in volgorde te behouden.
mijn_lijst = ['a','x','a','y','a','b','b','c'] mijn_eind_lijst = dict.fromkeys(mijn_lijst) print(list(mijn_eind_lijst))
Output:
['a', 'x', 'y', 'b', 'c']
Dubbelen Verwijderen met een Simpele For-lus
Doorloop de lijst, voeg items toe aan een nieuwe lijst alleen als ze nog niet voorgekomen zijn.
mijn_lijst = [1,2,2,3,1,4,5,1,2,6]
mijn_eind_lijst = []
for i in mijn_lijst:
if i not in mijn_eind_lijst:
mijn_eind_lijst.append(i)
print(mijn_eind_lijst)
Output:
[1, 2, 3, 4, 5, 6]
Dubbelen Verwijderen via List Comprehension
List comprehensions bieden een beknopte syntaxis terwijl leesbaarheid behouden blijft.
mijn_lijst = [1,2,2,3,1,4,5,1,2,6] mijn_eind_lijst = [] [mijn_eind_lijst.append(n) for n in mijn_lijst if n not in mijn_eind_lijst] print(mijn_eind_lijst)
Output:
[1, 2, 3, 4, 5, 6]
Dubbelen Verwijderen met NumPy's unique()
NumPy's unique() functie retourneert de gesorteerde unieke elementen van een array.
import numpy as np mijn_lijst = [1,2,2,3,1,4,5,1,2,6] mijn_eind_lijst = np.unique(mijn_lijst).tolist() print(mijn_eind_lijst)
Output:
[1, 2, 3, 4, 5, 6]
Dubbelen Verwijderen met Pandas' unique()
Op dezelfde manier biedt Pandas een lichtgewicht unique() methode die werkt op lijst-achtige objecten.
import pandas as pd mijn_lijst = [1,2,2,3,1,4,5,1,2,6] mijn_eind_lijst = pd.unique(mijn_lijst).tolist() print(mijn_eind_lijst)
Output:
[1, 2, 3, 4, 5, 6]
Dubbelen Verwijderen met enumerate() en List Comprehension
Het combineren van enumerate() met een list comprehension staat toe om duplicaten te verwijderen terwijl de eerste voorkomen van elk element bewaard blijft.
mijn_lijst = [1,2,2,3,1,4,5,1,2,6] mijn_eind_lijst = [i for j, i in enumerate(mijn_lijst) if i not in mijn_lijst[:j]] print(mijn_eind_lijst)
Output:
[1, 2, 3, 4, 5, 6]
Samenvatting
set()is de snelste manier om duplicaten te droppen, behoudt maar niet de volgorde.- Tijdelijke lijsten of for-lussen behouden de originele volgorde maar zijn iets minder beknopt.
- Ordered dictionaries of
dict.fromkeys()behouden volgorde en zijn erg efficiënt. - NumPy en Pandas bieden one-liner oplossingen voor numerieke of DataFrame-zware workflows.
- List comprehensions met
enumerate()bieden een functionele stijl die zowel leesbaar als volgorde-behoudend is.
Python
- Python Datatypes onder de knie krijgen: Een praktische gids
- Python Operators onder de knie krijgen: Een uitgebreide gids
- Python Pass Statement onder de knie krijgen: Een praktische gids
- Python Functie-argumenten onder de knie krijgen: Positionele, Keyword en Default Parameters
- Python's range()-functie onder de knie: van basis tot geavanceerde use cases
- Python Lijsten Onder de Loep: Append, Sort, Lengte & List Comprehensions (Praktische Gids)
- Gemiddeldes Berekenen in Python: Een Praktische Gids
- Python list.count(): Expert Gids met Praktische Voorbeelden
- Items Verwijderen uit een Python Lijst: remove(), pop(), clear() en del
- Python List index() – Elementposities Vinden met Praktische Voorbeelden
- Python Lists Beheersen: Uitgebreide Handleiding