Hoe duplicaten uit een lijst te verwijderen in Python
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 bepaalde lijst kunnen verwijderen Python.
Methode 1) Verwijder duplicaten uit de lijst met Set
Om de duplicaten uit een lijst te verwijderen, kunt u gebruik maken van de ingebouwde functie set()
. De specialiteit van de methode set() is dat deze verschillende 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 en alleen de afzonderlijke elementen terug moeten krijgen. De lijst wordt gegeven aan de set()
ingebouwde functie. Later de definitieve lijst wordt weergegeven met behulp van de list()
ingebouwde functie, zoals weergegeven in het onderstaande voorbeeld.
De uitvoer die we krijgen bestaat uit afzonderlijke elementen waarbij alle dubbele elementen worden geëlimineerd.
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 van een gegeven te verwijderen list
, kunt u gebruik maken van een lege tijdelijke lijst. Daarvoor 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 is een werkend voorbeeld met behulp van 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 te importeren OrderedDict
uit collecties. Het is beschikbaar vanaf python2.7. OrderedDict zorgt ervoor dat u de verschillende elementen terugkrijgt in de volgorde waarin de sleutel aanwezig is.
Laten we gebruik maken van een lijst en gebruiken fromkeys()
methode beschikbaar in OrderedDict om de unieke elementen uit de lijst te halen.
Om gebruik te maken van OrderedDict.fromkey()
methode, moet u OrderedDict uit collecties importeren, zoals hieronder weergegeven:
from collections import OrderedDict
Hier is een voorbeeld om duplicaten te verwijderen met behulp van 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 3.5+ kunnen we gebruik maken van de reguliere dict.fromkeys()
om de verschillende elementen uit de lijst te halen. De dict.fromkeys()
methoden retourneren sleutels die uniek zijn en helpen bij het verwijderen van dubbele waarden.
Een voorbeeld dat de werking laat zien van dict.fromkeys()
op een lijst om de unieke items weer te geven is als volgt:
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 om leeg te maken, dwz myFinallist = []
Voeg binnen de for-lus een controle toe of de items in de lijst in de array voorkomen myFinallist
. Als de items niet bestaan, voegt u het item toe aan de array myFinallist met behulp van de append()
methode.
Wanneer het dubbele item wordt aangetroffen, zal het dus al aanwezig zijn in de array myFinallist en niet worden ingevoegd. Laten we nu hetzelfde controleren in 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) Met behulp van de Numpy unique()-methode.
Werkwijze unique()
van de Numpy-module kan ons helpen duplicaten uit de gegeven lijst te verwijderen.
Om met Numpy te werken, importeer numpy-module eerst, moet u deze stappen volgen:
Stap 1) Numpy-module importeren
import numpy as np
Stap 2) Gebruik uw lijst met duplicaten binnen de unieke methode, zoals hieronder weergegeven. De uitvoer wordt terug geconverteerd naar een lijstformaat met behulp van tolist()
methode.
myFinalList = np.unique(my_list).tolist()
Stap 3) Druk ten slotte de lijst af zoals hieronder weergegeven:
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 unique()
methode die ons de unieke elementen uit de gegeven lijst zal geven.
Om met de Pandas-module te werken, moet u deze stappen volgen:
Stap 1) Importeer Pandas-module
import pandas as pd
Stap 2) Gebruik uw lijst met duplicaten erin unique()
methode zoals hieronder weergegeven:
myFinalList = pd.unique(my_list).tolist()
Stap 3) Druk de lijst af zoals hieronder weergegeven:
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 de combinatie van lijstbegrip en opsomming om de dubbele elementen te verwijderen. Enumerate retourneert een object met een teller voor elk element in de lijst. Bijvoorbeeld (0,1), (1,2) enz. Hier is de eerste waarde de index en de tweede waarde het lijstitem. W
Van elk element wordt gecontroleerd of het in de lijst voorkomt. Als dat het geval is, 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]
Samenvatting
- Om de duplicaten uit een lijst te verwijderen, kunt u gebruik maken van de ingebouwde functie
set()
. De specialiteit van deset()
methode is dat het verschillende elementen retourneert. - U kunt duplicaten uit de gegeven lijst verwijderen door te importeren
OrderedDictfrom
collecties. Het is beschikbaar vanaf python2.7.OrderedDictdict
zorgt ervoor dat u de verschillende elementen terugkrijgt in de volgorde waarin de sleutel aanwezig is. - U kunt gebruik maken van een for-loop waarmee we de lijst met items doorkruisen om duplicaten te verwijderen.
- Werkwijze
unique()
van de Numpy-module kan ons helpen duplicaten uit de gegeven lijst te verwijderen. - De Pandas-module heeft een
unique()
methode die ons de unieke elementen uit de gegeven lijst zal geven. - De combinatie van lijstbegrip en opsomming wordt gebruikt om de dubbele elementen uit de lijst te verwijderen. Enumerate retourneert een object met een teller voor elk element in de lijst.