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 til set() metoden er at den returnerer distinkte elementer.
  • Du kan fjerne duplikater fra den gitte listen ved å importere OrderedDictfrom samlinger. Den er tilgjengelig fra python2.7 og utover. OrderedDictdict tar 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.

Oppsummer dette innlegget med: