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.
