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 de set() 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.