Sådan fjerner du dubletter fra en liste i Python
⚡ Smart opsummering
Fjernelse af dubletter fra en Python Liste kan udføres med adskillige indbyggede tilgange, herunder set(), dict.fromkeys(), loops, listeforståelser og biblioteksmetoder fra NumPy og Pandas, der hver især balancerer ordrebevarelse mod hastighed.

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 dubletter fra en liste kan du bruge den indbyggede funktion set(). Det særlige ved set()-metoden er, at den returnerer forskellige 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 gendanne de forskellige elementer. Listen gives til den indbyggede funktion set(). Later Den endelige liste vises ved hjælp af den indbyggede funktion list().
Det output, vi får, er forskellige elementer, hvor alle duplikerede elementer 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 liste kan du bruge en tom midlertidig liste. Til det formål skal du først gennemgå listen med dubletter og tilføje de unikke elementer til den midlertidige liste. Later den midlertidige liste er tildelt hovedlisten.
Eksempel
Her er et eksempel på 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)
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. Det er tilgængeligt fra python 2.7 og fremefter. OrderedDict sørger for at returnere de forskellige elementer til dig i en rækkefølge, hvor nøglen er til stede.
Lad os bruge en liste og fromkeys()-metoden, der er tilgængelig i OrderedDict, til at hente de unikke elementer fra listen.
For at bruge OrderedDict.fromkeys()-metoden skal du importere OrderedDict fra samlinger, som vist nedenfor:
from collections import OrderedDict
Her er et eksempel på fjernelse af dubletter ved hjælp af 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))
Output:
['a', 'x', 'y', 'b', 'c']
Fra Python Fra version 3.5+ kan vi bruge den almindelige metode dict.fromkeys() til at hente de forskellige elementer fra listen. Metoden dict.fromkeys() returnerer unikke nøgler og hjælper med at fjerne dubletter.
Et eksempel, der viser, hvordan dict.fromkeys() fungerer 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.
Først skal du initialisere arrayet til tomt, dvs. myFinallist = []. Inde i for-loop'en skal du tilføje en kontrol for, 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()-metoden.
Så når det duplikerede element findes, vil det allerede være til stede i arrayet myFinallist og vil ikke blive indsat. Lad os nu kontrollere 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 unique() metoden
Metoden unique() fra NumPy-modulet kan hjælpe os med at fjerne dubletter fra den givne liste.
For at arbejde med NumPy skal du først importere numpy-modulet:
Trin 1) Importér NumPy-modul
import numpy as np
Trin 2) Brug din liste med dubletter i unique()-metoden. Outputtet konverteres tilbage til en liste ved hjælp af tolist()-metoden.
myFinalList = np.unique(my_list).tolist()
Trin 3) Udskriv endelig listen:
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 unik() metode, der vil give os de unikke elementer fra den angivne liste.
Sådan arbejder du med Pandas-modulet:
Trin 1) Importér Pandas-modul
import pandas as pd
Trin 2) Brug din liste med dubletter i unique()-metoden:
myFinalList = pd.unique(my_list).tolist()
Trin 3) Udskriv listen:
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 bruger vi kombinationen af listeforståelse og enumerate() til at fjerne duplikerede elementer. Enumerate returnerer et objekt med en tæller til hvert element i listen. For eksempel (0,1), (1,2) osv. Her er den første værdi indekset, og den anden værdi er listeelementet.
Hvert element kontrolleres for at se, 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]
