Hvordan fjerne duplikater fra en liste i Python
⚡ Smart oppsummering
Fjerne duplikater fra en Python Liste kan gjøres med flere innebygde tilnærminger, inkludert set(), dict.fromkeys(), løkker, listeforståelser og bibliotekmetoder fra NumPy og Pandas, som hver balanserer ordensbeskyttelse mot hastighet.

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 skal 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 duplikater fra en liste kan du bruke den innebygde funksjonen set(). Det spesielle med 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 må fjerne og bare få tilbake de distinkte elementene. Listen er gitt til den innebygde set()-funksjonen. Later Den endelige listen vises ved hjelp av den innebygde funksjonen list().
Utdataene vi får er distinkte elementer der alle dupliserte elementer 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 liste kan du bruke en tom midlertidig liste. For å gjøre det må du først gå gjennom listen som inneholder duplikater og legge til de unike elementene i den midlertidige listen. Later den midlertidige listen er tilordnet hovedlisten.
Eksempel
Her er et fungerende eksempel som bruker en 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. Det er tilgjengelig fra python 2.7 og utover. OrderedDict tar seg av å returnere de distinkte elementene i en rekkefølge der nøkkelen er tilstede.
La oss bruke en liste og fromkeys()-metoden som er tilgjengelig i OrderedDict for å hente de unike elementene fra listen.
For å bruke OrderedDict.fromkeys()-metoden må du importere OrderedDict fra samlinger, som vist nedenfor:
from collections import OrderedDict
Her er et eksempel på hvordan du fjerner 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 Fra 3.5+ og utover kan vi bruke den vanlige metoden dict.fromkeys() for å hente de distinkte elementene fra listen. Metoden dict.fromkeys() returnerer unike nøkler og hjelper med å fjerne dupliserte verdier.
Et eksempel som viser hvordan dict.fromkeys() fungerer 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.
Først initialiserer du arrayet til tomt, dvs. myFinallist = []. Inne i for-løkken, legg til en sjekk om elementene i listen finnes i arrayet myFinallist. Hvis elementene ikke finnes, legg elementet til arrayet myFinallist ved hjelp av append()-metoden.
Så når duplikatet blir funnet, vil det allerede være tilstede i arrayet 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) Bruk av NumPy unique()-metoden
Metoden unique() fra NumPy-modulen kan hjelpe oss med å fjerne duplikater fra den gitte listen.
For å jobbe med NumPy, importer først numpy-modulen:
Trinn 1) Importer NumPy-modulen
import numpy as np
Trinn 2) Bruk listen din med duplikater i unique()-metoden. Utdataene konverteres tilbake til en liste ved hjelp av tolist()-metoden.
myFinalList = np.unique(my_list).tolist()
Trinn 3) Skriv til slutt ut listen:
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 unik() metode som vil gi oss de unike elementene fra listen gitt.
Slik jobber du med Pandas-modulen:
Trinn 1) Importer Pandas-modul
import pandas as pd
Trinn 2) Bruk listen din med duplikater i unique()-metoden:
myFinalList = pd.unique(my_list).tolist()
Trinn 3) Skriv ut listen:
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 bruker vi kombinasjonen av listeforståelse og enumerate() for å fjerne duplikatelementene. 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.
Hvert element sjekkes for å se 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]
