Hoe duplicaten uit een lijst te verwijderen in Python
⚡ Slimme samenvatting
Dubbele items verwijderen uit een Python Lijsten kunnen op verschillende ingebouwde manieren worden verwerkt, waaronder set(), dict.fromkeys(), lussen, list comprehensions en bibliotheekmethoden van NumPy en Pandas, waarbij elk een balans zoekt tussen het behoud van de volgorde en de snelheid.
Python verwijder duplicaten uit een lijst
Een lijst is een container die verschillende bevat Python objecten, zoals gehele getallen, woorden, waarden, enz. Het is het equivalent van een array in andere programmeertalen.
We zullen hier dus verschillende manieren bespreken waarop we duplicaten uit een gegeven lijst kunnen verwijderen. Python.
Methode 1) Verwijder duplicaten uit de lijst met Set
Om duplicaten uit een lijst te verwijderen, kunt u de ingebouwde functie `set()` gebruiken. De bijzondere eigenschap van de `set()`-methode is dat deze unieke elementen retourneert.
We hebben een lijst: [1,1,2,3,2,2,4,5,6,2,1]. De lijst bevat veel duplicaten die we moeten verwijderen, zodat alleen de unieke elementen overblijven. De lijst wordt doorgegeven aan de ingebouwde functie `set()`. Later De uiteindelijke lijst wordt weergegeven met behulp van de ingebouwde functie list().
Het resultaat is een verzameling unieke elementen, waarbij alle dubbele elementen zijn verwijderd.
Voorbeeld
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]
Methode 2) Gebruik van de tijdelijke lijst
Om duplicaten uit een lijst te verwijderen, kunt u een lege tijdelijke lijst gebruiken. Hiervoor moet u eerst de lijst met duplicaten doorlopen en de unieke items aan de tijdelijke lijst toevoegen. Later de tijdelijke lijst wordt toegewezen aan de hoofdlijst.
Voorbeeld
Hier volgt een werkend voorbeeld met een tijdelijke lijst.
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]
Methode 3) Dict gebruiken
We kunnen duplicaten uit de gegeven lijst verwijderen door OrderedDict uit de `collections`-bibliotheek te importeren. Deze bibliotheek is beschikbaar vanaf Python 2.7. OrderedDict zorgt ervoor dat de unieke elementen worden geretourneerd in de volgorde waarin de sleutel voorkomt.
Laten we een lijst gebruiken en de `fromkeys()`-methode van `OrderedDict` inzetten om de unieke elementen uit de lijst te halen.
Om de OrderedDict.fromkeys() methode te kunnen gebruiken, moet je OrderedDict importeren vanuit de collecties, zoals hieronder weergegeven:
from collections import OrderedDict
Hier volgt een voorbeeld van het verwijderen van duplicaten met behulp van de OrderedDict.fromkeys()-methode.
Voorbeeld
from collections import OrderedDict my_list = ['a','x','a','y','a','b','b','c'] my_final_list = OrderedDict.fromkeys(my_list) print(list(my_final_list))
Output:
['a', 'x', 'y', 'b', 'c']
Vanaf Python Vanaf versie 3.5 kunnen we de reguliere `dict.fromkeys()`-methode gebruiken om de unieke elementen uit de lijst te halen. De `dict.fromkeys()`-methode retourneert unieke sleutels en helpt bij het verwijderen van dubbele waarden.
Een voorbeeld dat laat zien hoe dict.fromkeys() werkt op een lijst om de unieke items te verkrijgen, ziet er als volgt uit:
Voorbeeld
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']
Methode 4) For-loop gebruiken
gebruik for loop, doorkruisen we de lijst met items om duplicaten te verwijderen.
Initialiseer eerst de array als leeg, d.w.z. myFinallist = []. Voeg binnen de for-loop een controle toe om te controleren of de items in de lijst al in de array myFinallist voorkomen. Als de items niet bestaan, voeg ze dan toe aan de array myFinallist met behulp van de append()-methode.
Als een item dubbel voorkomt, is het al aanwezig in de array myFinallist en wordt het niet opnieuw ingevoegd. Laten we dit nu controleren aan de hand van het onderstaande voorbeeld:
Voorbeeld
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(list(myFinallist))
Output:
[1, 2, 3, 4, 5, 6]
Methode 5) Lijstbegrip gebruiken
Lijstbegrippen zijn Python functies die worden gebruikt voor het maken van nieuwe reeksen (zoals lijsten, woordenboeken, enz.) met behulp van reeksen die al zijn gemaakt. Dit helpt u om langere lussen te verminderen en uw code gemakkelijker te lezen en te onderhouden.
Laten we gebruik maken van lijstbegrip om duplicaten uit de gegeven lijst te verwijderen.
Voorbeeld
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]
Methode 6) Gebruikmaken van de NumPy unique()-methode
De methode `unique()` uit de NumPy-module kan ons helpen duplicaten uit de gegeven lijst te verwijderen.
Om met NumPy te werken, moet je eerst de NumPy-module importeren:
Stap 1) Importeer de NumPy-module
import numpy as np
Stap 2) Gebruik je lijst met duplicaten binnen de `unique()`-methode. De uitvoer wordt vervolgens weer omgezet naar een lijst met behulp van de `tolist()`-methode.
myFinalList = np.unique(my_list).tolist()
Stap 3) Print tot slot de lijst:
print(myFinalList)
De uiteindelijke code met uitvoer is als volgt:
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]
Methode 7) Pandas-methoden gebruiken
De Pandas-module heeft een unieke() methode die ons de unieke elementen uit de gegeven lijst geeft.
Om met de Pandas-module te werken:
Stap 1) Importeer Pandas-module
import pandas as pd
Stap 2) Gebruik je lijst met duplicaten binnen de unique()-methode:
myFinalList = pd.unique(my_list).tolist()
Stap 3) Print de lijst:
print(myFinalList)
De uiteindelijke code met uitvoer is als volgt:
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]
Methode 8) Enumerate() en lijstbegrip gebruiken
Hier gebruiken we een combinatie van list comprehension en enumerate() om de dubbele elementen te verwijderen. Enumerate retourneert een object met een teller voor elk element in de lijst. Bijvoorbeeld (0,1), (1,2), enzovoort. De eerste waarde is de index en de tweede waarde is het lijstitem.
Elk element wordt gecontroleerd om te zien of het in de lijst voorkomt, en zo ja, dan wordt het uit de lijst verwijderd.
Voorbeeld
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(list(my_finallist))
Output:
[1, 2, 3, 4, 5, 6]

