En lista är en behållare som innehåller olika Python-objekt, som kan vara heltal, ord, värden etc. Det motsvarar en matris i andra programmeringsspråk.
Så här går vi igenom olika sätt på vilka vi kan ta bort dubbletter från en viss lista.
I den här handledningen lär du dig:
- Ta bort dubbletter från listan med Set
- Ta bort dubbletter från en lista med den tillfälliga listan.
- Ta bort dubbletter från listan med Dict
- Ta bort dubbletter från en lista med for-loop
- Ta bort dubbletter från listan med hjälp av listförståelse
- Ta bort dubbletter från listan med Numpy unik () metod.
- Ta bort dubbletter från listan med Pandas-metoder
- Ta bort dubbletter med hjälp av enumerate () och listförståelse
Ta bort dubbletter från listan med Set
För att ta bort dubbletterna från en lista kan du använda den inbyggda funktionsuppsättningen (). Specialiteten för 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 olika elementen. Listan ges till den inbyggda funktionen set (). Senare visas den slutliga listan med den inbyggda listfunktionen (), som visas i exemplet nedan.
Resultatet som vi får är distinkta element där alla dubbletter elimineras.
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]
Ta bort dubbletter från en lista med den tillfälliga listan
För att ta bort dubbletter från en viss lista 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 i den tillfälliga listan. Senare tilldelas den tillfälliga listan till huvudlistan.
Här är ett fungerande exempel som använder tillfällig 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_listprint("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]
Ta bort dubbletter från listan med Dict
Vi kan ta bort dubbletter från listan genom att importera OrderedDict från samlingar. Den är tillgänglig från och med python2.7. OrderedDict tar hand om att returnera de distinkta elementen i en ordning i vilken nyckeln finns.
Låt oss använda en lista och använda fromkeys () -metoden tillgänglig i OrderedDict för att få de unika elementen från listan.
För att använda metoden OrderedDict.fromkey () 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 metoden OrderedDict.fromkeys ().
from collections import OrderedDictmy_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 och med Python 3.5+ kan vi använda de vanliga dict.fromkeys () för att få de olika elementen från listan. Metoderna dict.fromkeys () returnerar nycklar som är unika och hjälper till att bli av med de dubbla värdena.
Ett exempel som visar hur dict.fromkeys () fungerar i en lista för att ge de unika objekten är följande:
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']
Ta bort dubbletter från en lista med for-loop
Med hjälp av for-loop kommer vi att korsa listan med objekt för att ta bort dubbletter.
Initiera först arrayen för att tömma, dvs myFinallist = []. Inuti for-loop, 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är dubblettobjektet 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:
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]
Ta bort dubbletter från listan med hjälp av 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 slingor och göra din kod lättare att läsa och underhålla.
Låt oss använda listförståelse för att ta bort dubbletter från listan.
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]
Ta bort dubbletter från listan med Numpy unik () metod.
Metoden unik () från Numpy-modulen kan hjälpa oss att ta bort dubbletter från listan.
För att arbeta med Numpy first import numpy-modul 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 den unika metoden som visas nedan. Utdata konverteras tillbaka till ett listformat med metoden tolist ().
myFinalList = np.unique(my_list).tolist()
Steg 3) Skriv slutligen ut listan enligt nedan:
print(myFinalList)
Den slutliga koden med utdata är som följer:
import numpy as npmy_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]
Ta bort dubbletter från listan med Pandas-metoder
Pandas-modulen har en unik () metod som ger oss de unika elementen från listan.
För att arbeta med Pandas-modulen måste du följa dessa steg:
Steg 1) Importera Pandas-modulen
import pandas as pd
Steg 2) Använd din lista med dubbletter inuti unik () metod som visas 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 pdmy_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]
Ta bort dubbletter med hjälp av enumerate () och listförståelse
Här är kombinationen av listförståelse och uppräkning för att ta bort dubbletterna. 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 indexet, 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.
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 funktionsuppsättningen (). Specialiteten med metoden set () är att den returnerar distinkta element.
- Du kan ta bort dubbletter från listan genom att importera OrderedDictfrom-samlingar. Den är tillgänglig från och med python2.7. OrderedDictdict tar hand om att returnera de distinkta elementen i en ordning i vilken nyckeln finns.
- Du kan använda en for-loop som vi kommer att korsa listan med objekt för att ta bort dubbletter.
- Metoden unik () från Numpy-modulen kan hjälpa oss att ta bort dubbletter från listan.
- Pandas-modulen har en unik () metod som ger oss de unika elementen från listan.
- Kombinationen av listförståelse och uppräkning används för att ta bort dubbletterna från listan. Enumerate returnerar ett objekt med en räknare till varje element i listan.