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 i set() 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.