Sådan fjerner du dubletter fra en liste i Python
Python fjerne dubletter fra en liste
En liste er en beholder, der indeholder forskellige Python objekter, som kunne være heltal, ord, værdier osv. Det svarer til en matrix i andre programmeringssprog.
Så her vil vi gennemgå forskellige måder, hvorpå vi kan fjerne dubletter fra en given liste i Python.
Metode 1) Fjern dubletter fra listen ved hjælp af Set
For at fjerne dubletterne fra en liste kan du gøre brug af den indbyggede funktion set()
. Specialiteten ved 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 dubletter, som vi skal fjerne og kun få de forskellige elementer tilbage. Listen gives til set()
indbygget funktion. Later den endelige liste vises ved hjælp af list()
indbygget funktion, som vist i eksemplet nedenfor.
Det output, vi får, er forskellige elementer, hvor alle dubletterne er elimineret.
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))
Output:
[1, 2, 3, 4, 5, 6]
Metode 2) Brug af den midlertidige liste
For at fjerne dubletter fra en given list
, kan du gøre brug af en tom midlertidig liste. For det første bliver du nødt til at gå gennem listen med dubletter og tilføje de unikke elementer til den midlertidige liste. Later den midlertidige liste er tildelt hovedlisten.
Eksempel
Her er et fungerende eksempel ved hjælp af 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)
Output:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2] List After removing duplicates [1, 2, 3, 4, 5, 6]
Metode 3) Brug af Dict
Vi kan fjerne dubletter fra den givne liste ved at importere OrderedDict
fra samlinger. Den er tilgængelig fra python2.7 og fremefter. OrderedDict sørger for at returnere de forskellige elementer til dig i en rækkefølge, hvori nøglen er til stede.
Lad os gøre brug af en liste og bruge fromkeys()
metode tilgængelig i OrderedDict for at få de unikke elementer fra listen.
At gøre brug af OrderedDict.fromkey()
metode, skal du importere OrderedDict fra samlinger, som vist nedenfor:
from collections import OrderedDict
Her er et eksempel til at fjerne dubletter ved hjælp af OrderedDict.fromkeys()
fremgangsmåde.
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))
Output:
['a', 'x', 'y', 'b', 'c']
Fra Python 3.5+ og frem, kan vi gøre brug af det almindelige dict.fromkeys()
for at få de forskellige elementer fra listen. Det dict.fromkeys()
metoder returnerer nøgler, der er unikke og hjælper med at slippe af med de duplikerede værdier.
Et eksempel der viser virkemåden af dict.fromkeys()
på en liste for at give de unikke elementer 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))
Output:
['a', 'x', 'y', 'b', 'c']
Metode 4) Brug af for-loop
Ved brug af for-løkke, vil vi krydse listen over elementer for at fjerne dubletter.
Initialiser først array for at tømme, dvs myFinallist = []
.Inde i for-løkken skal du tilføje check, om elementerne på listen findes i arrayet myFinallist
. Hvis elementerne ikke findes, skal du tilføje elementet til arrayet myFinallist ved hjælp af append()
fremgangsmåde.
Så hver gang duplikatelementet stødes på, vil det allerede være til stede i arrayet myFinallist og vil ikke blive indsat. Lad os nu tjekke 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))
Output:
[1, 2, 3, 4, 5, 6]
Metode 5) Brug af listeforståelse
Listeforståelser er Python funktioner, der bruges til at oprette nye sekvenser (såsom lister, ordbøger osv.) ved hjælp af sekvenser, der allerede er oprettet. Dette hjælper dig med at reducere længere sløjfer og gøre din kode nemmere at læse og vedligeholde.
Lad os gøre brug af listeforståelse til at fjerne dubletter fra den angivne liste.
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)
Output:
[1, 2, 3, 4, 5, 6]
Metode 6) Brug af Numpy unik() metode.
Metoden unique()
fra Numpy-modulet kan hjælpe os med at fjerne dublet fra den angivne liste.
For at arbejde med Numpy første import numpy-modul skal du følge disse trin:
Trin 1) Importer Numpy-modul
import numpy as np
Trin 2) Brug din liste med dubletter i den unikke metode som vist nedenfor. Outputtet konverteres tilbage til et listeformat vha tolist()
fremgangsmåde.
myFinalList = np.unique(my_list).tolist()
Trin 3) Print endelig listen som vist nedenfor:
print(myFinalList)
Den endelige kode med output 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)
Output:
[1, 2, 3, 4, 5, 6]
Metode 7) Brug af Pandas metoder
Pandas-modulet har en unique()
metode, der vil give os de unikke elementer fra den givne liste.
For at arbejde med Pandas-modulet skal du følge disse trin:
Trin 1) Importér Pandas-modul
import pandas as pd
Trin 2) Brug din liste med dubletter indeni unique()
metode som vist nedenfor:
myFinalList = pd.unique(my_list).tolist()
Trin 3) Udskriv listen som vist nedenfor:
print(myFinalList)
Den endelige kode med output 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)
Output:
[1, 2, 3, 4, 5, 6]
Metode 8) Brug af enumerate() og listeforståelse
Her er kombinationen af listeforståelse og opremsning for at fjerne de duplikerede elementer. Enumerate returnerer et objekt med en tæller til hvert element på listen. For eksempel (0,1), (1,2) osv. Her er den første værdi indekset, og den anden værdi er listeelementet. W
Hvert element kontrolleres, om det findes på listen, og hvis det gør, 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))
Output:
[1, 2, 3, 4, 5, 6]
Resumé
- For at fjerne dubletterne fra en liste kan du gøre brug af den indbyggede funktion
set()
. Specialiteten iset()
metoden er, at den returnerer forskellige elementer. - Du kan fjerne dubletter fra den givne liste ved at importere
OrderedDictfrom
samlinger. Den er tilgængelig fra python2.7 og fremefter.OrderedDictdict
sørger for at returnere dig de distinkte elementer i en rækkefølge, hvori nøglen er til stede. - Du kan gøre brug af en for-loop, som vi vil krydse listen over elementer for at fjerne dubletter.
- Metoden
unique()
fra Numpy-modulet kan hjælpe os med at fjerne dublet fra den angivne liste. - Pandas-modulet har en
unique()
metode, der vil give os de unikke elementer fra den givne liste. - Kombinationen af listeforståelse og enumerate bruges til at fjerne de duplikerede elementer fra listen. Enumerate returnerer et objekt med en tæller til hvert element på listen.