Python fjerner duplikater fra en liste

Indholdsfortegnelse:

Anonim

En liste er en container, der indeholder forskellige Python-objekter, som kan 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 denne vejledning lærer du:

  • Fjern dubletter fra listen ved hjælp af Set
  • Fjern duplikater fra en liste ved hjælp af den midlertidige liste.
  • Fjern dubletter fra listen ved hjælp af Dict
  • Fjern dubletter fra en liste ved hjælp af for-loop
  • Fjern dubletter fra listen ved hjælp af listeforståelse
  • Fjern dubletter fra listen ved hjælp af Numpy unik () metode.
  • Fjern dubletter fra listen ved hjælp af Pandas-metoder
  • Fjern dubletter ved hjælp af enumerate () og listeforståelse

Fjern dubletter fra listen ved hjælp af Set

For at fjerne duplikaterne fra en liste kan du gøre brug af det indbyggede funktionssæt (). Set () -metoden er specialitet, 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 har brug for at fjerne og kun få tilbage de forskellige elementer. Listen er angivet til den indbyggede funktion set (). Senere vises den endelige liste ved hjælp af den indbyggede liste () -funktion, som vist i eksemplet nedenfor.

Det output, vi får, er forskellige elementer, hvor alle duplikater fjernes.

my_list = [1,1,2,3,2,2,4,5,6,2,1]my_final_list = set(my_list)print(list(my_final_list))

Produktion:

[1, 2, 3, 4, 5, 6]

Fjern duplikater fra en liste ved hjælp af den midlertidige liste

For at fjerne dubletter fra en given liste kan du gøre brug af en tom midlertidig liste. For det første skal du løbe gennem listen med duplikater og føje de unikke emner til den midlertidige liste. Senere tildeles den midlertidige liste til hovedlisten.

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_listprint("List After removing duplicates ", my_list)

Produktion:

List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]List After removing duplicates [1, 2, 3, 4, 5, 6]

Fjern dubletter fra listen ved hjælp 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 dig til de forskellige elementer i en rækkefølge, hvor nøglen er til stede.

Lad os gøre brug af en liste og bruge fromkeys () -metoden tilgængelig i OrderedDict for at få de unikke elementer fra listen.

For at gøre brug af OrderedDict.fromkey () -metoden skal du importere OrderedDict fra samlinger som vist nedenfor:

from collections import OrderedDict

Her er et eksempel på at fjerne dubletter ved hjælp af metoden OrderedDict.fromkeys ().

from collections import OrderedDictmy_list = ['a','x','a','y','a','b','b','c']my_final_list = OrderedDict.fromkeys(my_list)print(list(my_final_list))

Produktion:

['a', 'x', 'y', 'b', 'c']

Fra og med Python 3.5+ kan vi bruge de almindelige dict.fromkeys () til at få de forskellige elementer fra listen. Metodene dict.fromkeys () returnerer nøgler, der er unikke og hjælper med at slippe af med de dobbelte værdier.

Et eksempel, der viser, hvordan dict.fromkeys () fungerer på en liste for at give de unikke emner, er som følger:

my_list = ['a','x','a','y','a','b','b','c']my_final_list = dict.fromkeys(my_list)print(list(my_final_list))

Produktion:

['a', 'x', 'y', 'b', 'c']

Fjern dubletter fra en liste ved hjælp af for-loop

Ved hjælp af for-loop krydser vi listen over emner for at fjerne dubletter.

Initialiser først array til tom dvs. myFinallist = []. Inde i for-loop, tilføj 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 () metode.

Så når det dobbelte element er stødt, vil det allerede være til stede i arrayet myFinallist og vil ikke blive indsat. Lad os nu kontrollere det samme i eksemplet nedenfor:

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))

Produktion:

[1, 2, 3, 4, 5, 6]

Fjern dubletter fra listen ved hjælp 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 lettere at læse og vedligeholde.

Lad os gøre brug af listeforståelse for at fjerne dubletter fra den givne liste.

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)

Produktion:

[1, 2, 3, 4, 5, 6]

Fjern dubletter fra listen ved hjælp af Numpy unik () metode.

Metoden unik () fra Numpy-modulet kan hjælpe os med at fjerne duplikater fra den givne 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 inden for den unikke metode som vist nedenfor. Outputtet konverteres tilbage til et listeformat ved hjælp af tolist () -metoden.

myFinalList = np.unique(my_list).tolist()

Trin 3) Udskriv til sidst listen som vist nedenfor:

print(myFinalList)

Den endelige kode med output er som følger:

import numpy as npmy_list = [1,2,2,3,1,4,5,1,2,6]myFinalList = np.unique(my_list).tolist()print(myFinalList)

Produktion:

[1, 2, 3, 4, 5, 6]

Fjern dubletter fra listen ved hjælp af Pandas-metoder

Pandas-modulet har en unik () metode, der giver os de unikke elementer fra den givne liste.

For at arbejde med Pandas-modulet skal du følge disse trin:

Trin 1) Importer Pandas-modul

import pandas as pd

Trin 2) Brug din liste med duplikater inde i unik () 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 pdmy_list = [1,2,2,3,1,4,5,1,2,6]myFinalList = pd.unique(my_list).tolist()print(myFinalList)

Produktion:

[1, 2, 3, 4, 5, 6]

Fjern dubletter ved hjælp af enumerate () og listeforståelse

Her er kombinationen af ​​listeforståelse og enumerate for at fjerne duplikatelementerne. 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, hvis det findes på listen, og hvis det gør det, fjernes det fra listen.

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))

Produktion:

[1, 2, 3, 4, 5, 6]

Resumé

  • For at fjerne duplikaterne fra en liste kan du gøre brug af det indbyggede funktionssæt (). Set () - metoden er specialitet, 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 til de forskellige elementer i en rækkefølge, hvor nøglen er til stede.
  • Du kan gøre brug af en for-loop, som vi vil krydse listen over emner for at fjerne dubletter.
  • Metoden unik () fra Numpy-modulet kan hjælpe os med at fjerne duplikater fra den givne liste.
  • Pandas-modulet har en unik () metode, der giver os de unikke elementer fra den givne liste.
  • Kombinationen af ​​listeforståelse og enumerate bruges til at fjerne duplikatelementerne fra listen. Enumerate returnerer et objekt med en tæller til hvert element på listen.