Hur man tar bort dubbletter från en lista i Python

Python ta bort dubbletter från en lista

En lista är en behållare som innehåller olika Python objekt, som kan vara heltal, ord, värden, etc. Det är motsvarigheten till en array i andra programmeringsspråk.

Så här kommer vi att gå igenom olika sätt på vilka vi kan ta bort dubbletter från en given lista i Python.

Metod 1) Ta bort dubbletter från listan med Set

För att ta bort dubbletterna från en lista kan du använda den inbyggda funktionen set(). Specialiteten hos set()-metoden är att den returnerar distinkta element.

Vi har en lista: [1,1,2,3,2,2,4,5,6,2,1]. Listan har många dubbletter som vi behöver ta bort och bara få tillbaka de distinkta elementen. Listan ges till set() inbyggd funktion. Later den slutliga listan visas med hjälp av list() inbyggd funktion, som visas i exemplet nedan.


Utdata som vi får är distinkta element där alla dubbletter av element elimineras.
Exempelvis

my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))

Produktion:

[1, 2, 3, 4, 5, 6]

Metod 2) Använda den tillfälliga listan

För att ta bort dubbletter från en given list, kan du använda en tom tillfällig lista. För det första måste du gå igenom listan med dubbletter och lägga till de unika objekten till den tillfälliga listan. Later den tillfälliga listan tilldelas huvudlistan.

Exempelvis
Här är ett fungerande exempel med hjälp av temporär lista.

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)

Produktion:

List Before  [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
List After removing duplicates  [1, 2, 3, 4, 5, 6]

Metod 3) Använda Dict

Vi kan ta bort dubbletter från den givna listan genom att importera OrderedDict från samlingar. Den är tillgänglig från python2.7 och framåt. OrderedDict tar hand om att returnera de distinkta elementen till dig i en ordning där nyckeln finns.

Låt oss använda en lista och använda fromkeys() metod tillgänglig i OrderedDict för att få de unika elementen från listan.

Att använda OrderedDict.fromkey() metod måste du importera OrderedDict från samlingar, som visas nedan:

from collections import OrderedDict

Här är ett exempel för att ta bort dubbletter med hjälp av OrderedDict.fromkeys() metod.

Exempelvis

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))

Produktion:

['a', 'x', 'y', 'b', 'c']

Från Python 3.5+ och framåt kan vi använda det vanliga dict.fromkeys() för att få de distinkta elementen från listan. De dict.fromkeys() metoder returnerar nycklar som är unika och hjälper till att bli av med dubblettvärdena.

Ett exempel som visar hur dict.fromkeys() på en lista för att ge de unika föremålen är följande:

Exempelvis

my_list = ['a','x','a','y','a','b','b','c']
my_final_list = dict.fromkeys(my_list)
print(list(my_final_list))

Produktion:

['a', 'x', 'y', 'b', 'c']

Metod 4) Använd for-loop

Använda för-loop, kommer vi att gå igenom listan med objekt för att ta bort dubbletter.

Initiera först array för att tömma dvs myFinallist = [].Inuti for-loopen, lägg till check om objekten i listan finns i arrayen myFinallist. Om objekten inte finns, lägg till objektet i arrayen myFinallist med hjälp av append() metod.

Så närhelst duplikatobjektet påträffas kommer det redan att finnas i arrayen myFinallist och kommer inte att infogas. Låt oss nu kontrollera detsamma i exemplet nedan:

Exempelvis

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))

Produktion:

[1, 2, 3, 4, 5, 6]

Metod 5) Använda listförståelse

Listförståelser är Python funktioner som används för att skapa nya sekvenser (som listor, ordböcker etc.) med sekvenser som redan har skapats. Detta hjälper dig att minska längre loopar och göra din kod lättare att läsa och underhålla.

Låt oss använda oss av listförståelse för att ta bort dubbletter från den angivna listan.

Exempelvis

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)

Produktion:

[1, 2, 3, 4, 5, 6]

Metod 6) Använder Numpy unique()-metoden.

Metoden unique() från Numpy-modulen kan hjälpa oss att ta bort dubbletter från den angivna listan.

För att arbeta med Numpy first import numpy-modulen måste du följa dessa steg:

steg 1) Importera Numpy-modul

import numpy as np

Steg 2) Använd din lista med dubbletter i unik metod som visas nedan. Utdata konverteras tillbaka till ett listformat med hjälp av tolist() metod.

myFinalList = np.unique(my_list).tolist()

Steg 3) Skriv till sist ut listan enligt nedan:

print(myFinalList)

Den slutliga koden med utdata är som följer:

import numpy as np
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = np.unique(my_list).tolist()
print(myFinalList)

Produktion:

[1, 2, 3, 4, 5, 6]

Metod 7) Använda Pandas metoder

Pandas-modulen har en unique() metod som ger oss de unika elementen från den angivna listan.

För att arbeta med Pandas-modulen måste du följa dessa steg:

Steg 1) Importera Panda-modul

import pandas as pd

Steg 2) Använd din lista med dubbletter inuti unique() metod enligt nedan:

myFinalList = pd.unique(my_list).tolist()

Steg 3) Skriv ut listan enligt nedan:

print(myFinalList)

Den slutliga koden med utdata är som följer:

import pandas as pd

my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = pd.unique(my_list).tolist()
print(myFinalList)

Produktion:

[1, 2, 3, 4, 5, 6]

Metod 8) Använd enumerate() och listförståelse

Här kombinationen av listförståelse och uppräkning för att ta bort dubblettelementen. Enumerate returnerar ett objekt med en räknare till varje element i listan. Till exempel (0,1), (1,2) etc. Här är det första värdet index, och det andra värdet är listobjektet. W

Varje element kontrolleras om det finns i listan, och om det gör det tas det bort från listan.

Exempelvis

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))

Produktion:

[1, 2, 3, 4, 5, 6]

Sammanfattning

  • För att ta bort dubbletterna från en lista kan du använda den inbyggda funktionen set(). Specialiteten hos set() Metoden är att den returnerar distinkta element.
  • Du kan ta bort dubbletter från den givna listan genom att importera OrderedDictfrom samlingar. Den är tillgänglig från python2.7 och framåt. OrderedDictdict tar hand om att returnera de distinkta delarna till dig i en ordning där nyckeln finns.
  • Du kan använda en for-loop som vi kommer att gå igenom listan med objekt för att ta bort dubbletter.
  • Metoden unique() från Numpy-modulen kan hjälpa oss att ta bort dubbletter från den angivna listan.
  • Pandas-modulen har en unique() metod som ger oss de unika elementen från den angivna listan.
  • Kombinationen av listförståelse och enumerate används för att ta bort dubblettelementen från listan. Enumerate returnerar ett objekt med en räknare till varje element i listan.

Sammanfatta detta inlägg med: