Hvordan fjerne duplikater fra en liste i Python
Python fjerne duplikater fra en liste
En liste er en beholder som inneholder forskjellige Python objekter, som kan være heltall, ord, verdier osv. Det tilsvarer en matrise i andre programmeringsspråk.
Så her vil vi gå gjennom forskjellige måter vi kan fjerne duplikater fra en gitt liste på Python.
Metode 1) Fjern duplikater fra listen ved hjelp av Set
For å fjerne duplikatene fra en liste kan du benytte deg av den innebygde funksjonen set(). Spesialiteten til set()-metoden er at den returnerer distinkte elementer.
Vi har en liste: [1,1,2,3,2,2,4,5,6,2,1]. Listen har mange duplikater som vi trenger for å fjerne og få tilbake bare de distinkte elementene. Listen er gitt til set() innebygd funksjon. Later den endelige listen vises ved hjelp av list() innebygd funksjon, som vist i eksempelet nedenfor.
Utdataene vi får er distinkte elementer der alle duplikatelementene er eliminert.
Eksempel
my_list = [1,1,2,3,2,2,4,5,6,2,1] my_final_list = set(my_list) print(list(my_final_list))
Utgang:
[1, 2, 3, 4, 5, 6]
Metode 2) Bruke den midlertidige listen
For å fjerne duplikater fra en gitt list, kan du bruke en tom midlertidig liste. For det første må du gå gjennom listen med duplikater og legge til de unike elementene til den midlertidige listen. Later den midlertidige listen er tilordnet hovedlisten.
Eksempel
Her er et fungerende eksempel som bruker midlertidig liste.
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)
Utgang:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2] List After removing duplicates [1, 2, 3, 4, 5, 6]
Metode 3) Bruke Dict
Vi kan fjerne duplikater fra den gitte listen ved å importere OrderedDict fra samlinger. Den er tilgjengelig fra python2.7 og utover. OrderedDict sørger for å returnere de distinkte elementene til deg i en rekkefølge hvor nøkkelen er tilstede.
La oss bruke en liste og bruke fromkeys() metode tilgjengelig i OrderedDict for å få de unike elementene fra listen.
Å benytte seg av OrderedDict.fromkey() metode, må du importere OrderedDict fra samlinger, som vist nedenfor:
from collections import OrderedDict
Her er et eksempel for å fjerne duplikater ved hjelp av OrderedDict.fromkeys() metoden.
Eksempel
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))
Utgang:
['a', 'x', 'y', 'b', 'c']
Fra Python 3.5+ og utover kan vi benytte oss av det vanlige dict.fromkeys() for å få de distinkte elementene fra listen. De dict.fromkeys() metoder returnerer nøkler som er unike og hjelper til med å bli kvitt de dupliserte verdiene.
Et eksempel som viser hvordan dict.fromkeys() på en liste for å gi de unike elementene er som følger:
Eksempel
my_list = ['a','x','a','y','a','b','b','c'] my_final_list = dict.fromkeys(my_list) print(list(my_final_list))
Utgang:
['a', 'x', 'y', 'b', 'c']
Metode 4) Bruke for-loop
Ved hjelp av for-løkke, vil vi gå gjennom listen over elementer for å fjerne duplikater.
Initialiser først array for å tømme, dvs myFinallist = []. Inne i for-løkken, legg til sjekk om elementene i listen finnes i matrisen myFinallist. Hvis elementene ikke eksisterer, legg til elementet i arrayet myFinallist ved å bruke append() metoden.
Så hver gang det dupliserte elementet påtreffes, vil det allerede være til stede i arrayen myFinallist og vil ikke bli satt inn. La oss nå sjekke det samme i eksemplet nedenfor:
Eksempel
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))
Utgang:
[1, 2, 3, 4, 5, 6]
Metode 5) Bruke listeforståelse
Listeforståelser er Python funksjoner som brukes til å lage nye sekvenser (som lister, ordbøker osv.) ved å bruke sekvenser som allerede er opprettet. Dette hjelper deg med å redusere lengre løkker og gjøre koden lettere å lese og vedlikeholde.
La oss bruke listeforståelse for å fjerne duplikater fra den oppgitte listen.
Eksempel
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)
Utgang:
[1, 2, 3, 4, 5, 6]
Metode 6) Bruke Numpy unique()-metoden.
Metoden unique() fra Numpy-modulen kan hjelpe oss med å fjerne duplikat fra listen gitt.
For å jobbe med Numpy første import numpy-modul, må du følge disse trinnene:
Trinn 1) Importer Numpy-modul
import numpy as np
Trinn 2) Bruk listen din med duplikater i den unike metoden som vist nedenfor. Utdataene konverteres tilbake til et listeformat ved hjelp av tolist() metoden.
myFinalList = np.unique(my_list).tolist()
Trinn 3) Skriv til slutt ut listen som vist nedenfor:
print(myFinalList)
Den endelige koden med utdata er som følger:
import numpy as np my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = np.unique(my_list).tolist() print(myFinalList)
Utgang:
[1, 2, 3, 4, 5, 6]
Metode 7) Bruke Pandas metoder
Pandas-modulen har en unique() metode som vil gi oss de unike elementene fra listen gitt.
For å jobbe med Pandas-modulen, må du følge disse trinnene:
Trinn 1) Importer Pandas-modul
import pandas as pd
Trinn 2) Bruk listen din med duplikater inni unique() metode som vist nedenfor:
myFinalList = pd.unique(my_list).tolist()
Trinn 3) Skriv ut listen som vist nedenfor:
print(myFinalList)
Den endelige koden med utdata er som følger:
import pandas as pd my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = pd.unique(my_list).tolist() print(myFinalList)
Utgang:
[1, 2, 3, 4, 5, 6]
Metode 8) Bruke enumerate() og listeforståelse
Her er kombinasjonen av listeforståelse og opplisting for å fjerne de dupliserte elementene. Enumerate returnerer et objekt med en teller til hvert element i listen. For eksempel (0,1), (1,2) osv. Her er den første verdien indeksen, og den andre verdien er listeelementet. W
Hvert element kontrolleres om det finnes i listen, og hvis det gjør det, fjernes det fra listen.
Eksempel
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))
Utgang:
[1, 2, 3, 4, 5, 6]
Sammendrag
- For å fjerne duplikatene fra en liste kan du benytte deg av den innebygde funksjonen
set(). Spesialiteten tilset()metoden er at den returnerer distinkte elementer. - Du kan fjerne duplikater fra den gitte listen ved å importere
OrderedDictfromsamlinger. Den er tilgjengelig fra python2.7 og utover.OrderedDictdicttar seg av å gi deg de distinkte elementene i en rekkefølge der nøkkelen er tilstede. - Du kan bruke en for-løkke som vi vil gå gjennom listen over elementer for å fjerne duplikater.
- Metoden
unique()fra Numpy-modulen kan hjelpe oss med å fjerne duplikat fra listen gitt. - Pandas-modulen har en
unique()metode som vil gi oss de unike elementene fra listen gitt. - Kombinasjonen av listeforståelse og enumerate brukes til å fjerne de dupliserte elementene fra listen. Enumerate returnerer et objekt med en teller til hvert element i listen.
