Kako ukloniti duplikate s popisa u Python

Python uklonite duplikate s popisa

Popis je spremnik koji sadrลพi razliฤite Python objekti, koji mogu biti cijeli brojevi, rijeฤi, vrijednosti itd. To je ekvivalent nizu u drugim programskim jezicima.

Dakle, ovdje ฤ‡emo proฤ‡i razliฤite naฤine na koje moลพemo ukloniti duplikate s odreฤ‘enog popisa Python.

Metoda 1) Uklonite duplikate s popisa pomoฤ‡u Seta

Da biste uklonili duplikate s popisa, moลพete koristiti ugraฤ‘enu funkciju set(). Posebnost metode set() je da vraฤ‡a razliฤite elemente.

Imamo popis: [1,1,2,3,2,2,4,5,6,2,1]. Popis ima mnogo duplikata koje moramo ukloniti i vratiti samo razliฤite elemente. Popis se daje na set() ugraฤ‘ena funkcija. Later konaฤna lista se prikazuje pomoฤ‡u list() ugraฤ‘enu funkciju, kao ลกto je prikazano u primjeru u nastavku.


Rezultat koji dobivamo su razliฤiti elementi gdje su svi duplirani elementi eliminirani.
Primjer

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

Izlaz:

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

Metoda 2) Koriลกtenje privremenog popisa

Za uklanjanje duplikata iz zadanog list, moลพete koristiti prazan privremeni popis. Za to ฤ‡ete prvo morati proฤ‡i kroz popis koji ima duplikate i dodati jedinstvene stavke na privremeni popis. Later privremena lista se dodjeljuje glavnoj listi.

Primjer
Ovdje je radni primjer koriลกtenja privremenog popisa.

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)

Izlaz:

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

Metoda 3) Koriลกtenje Dict

Duplikate moลพemo ukloniti s danog popisa uvozom OrderedDict iz zbirki. Dostupan je od pythona 2.7 nadalje. OrderedDict se brine za vraฤ‡anje razliฤitih elemenata redoslijedom u kojem je kljuฤ prisutan.

Iskoristimo popis i koristimo se fromkeys() metoda dostupna u OrderedDict za dobivanje jedinstvenih elemenata s popisa.

Iskoristiti OrderedDict.fromkey() morate uvesti OrderedDict iz kolekcija, kao ลกto je prikazano u nastavku:

from collections import OrderedDict

Evo primjera za uklanjanje duplikata pomoฤ‡u OrderedDict.fromkeys() metoda.

Primjer

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

Izlaz:

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

Od Python 3.5+ nadalje, moลพemo koristiti redovne dict.fromkeys() da biste dobili razliฤite elemente s popisa. The dict.fromkeys() metode vraฤ‡aju kljuฤeve koji su jedinstveni i pomaลพu da se rijeลกite dupliciranih vrijednosti.

Primjer koji pokazuje rad dict.fromkeys() na popisu za davanje jedinstvenih stavki je kako slijedi:

Primjer

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

Izlaz:

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

Metoda 4) Koriลกtenje for-petlje

Koriลกtenje for-petlja, proฤ‡i ฤ‡emo popis stavki kako bismo uklonili duplikate.

Prvo inicijalizirajte niz da bude prazan, tj myFinallist = [].Unutar for-petlje dodajte provjeru postoje li stavke s popisa u nizu myFinallist. Ako stavke ne postoje, dodajte stavku u niz myFinallist pomoฤ‡u append() metoda.

Dakle, kad god se naiฤ‘e na dupliciranu stavku, ona ฤ‡e veฤ‡ biti prisutna u nizu myFinallist i neฤ‡e biti umetnuta. Provjerimo sada isto u primjeru ispod:

Primjer

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

Izlaz:

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

Metoda 5) Koriลกtenje razumijevanja popisa

Popis shvaฤ‡anja su Python funkcije koje se koriste za stvaranje novih sekvenci (kao ลกto su popisi, rjeฤnici itd.) koristeฤ‡i sekvence koje su veฤ‡ stvorene. To vam pomaลพe smanjiti dulje petlje i uฤiniti vaลก kod lakลกim za ฤitanje i odrลพavanje.

Iskoristimo razumijevanje popisa za uklanjanje duplikata s danog popisa.

Primjer

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)

Izlaz:

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

Metoda 6) Koriลกtenje metode Numpy unique().

Metoda unique() iz Numpy modula moลพe nam pomoฤ‡i ukloniti duplikat s danog popisa.

Za rad s Numpyjevim prvim uvoznim numpy modulom morate slijediti ove korake:

Korak 1) Uvoz Numpy modula

import numpy as np

Korak 2) Koristite svoj popis s duplikatima unutar jedinstvene metode kao ลกto je prikazano u nastavku. Izlaz se pretvara natrag u format popisa pomoฤ‡u tolist() metoda.

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

Korak 3) Na kraju ispiลกite popis kao ลกto je prikazano u nastavku:

print(myFinalList)

Konaฤni kod s izlazom je sljedeฤ‡i:

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

Izlaz:

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

Metoda 7) Koriลกtenje Pandas metoda

Pandas modul ima unique() metoda koja ฤ‡e nam dati jedinstvene elemente s danog popisa.

Za rad s modulom Pandas morate slijediti ove korake:

Korak 1) Uvoz Pandas modula

import pandas as pd

Korak 2) Koristite svoj popis s duplikatima unutra unique() metoda kao ลกto je prikazano u nastavku:

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

Korak 3) Ispiลกite popis kao ลกto je prikazano u nastavku:

print(myFinalList)

Konaฤni kod s izlazom je sljedeฤ‡i:

import pandas as pd

my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = pd.unique(my_list).tolist()
print(myFinalList)

Izlaz:

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

Metoda 8) Koriลกtenje enumerate() i razumijevanja popisa

Ovdje je kombinacija razumijevanja popisa i nabrajanja za uklanjanje dupliciranih elemenata. Enumerate vraฤ‡a objekt s brojaฤem za svaki element na popisu. Na primjer (0,1), (1,2) itd. Ovdje je prva vrijednost indeks, a druga vrijednost je stavka popisa. W

Svaki element se provjerava da li postoji na listi, a ako postoji, uklanja se s liste.

Primjer

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

Izlaz:

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

Rezime

  • Da biste uklonili duplikate s popisa, moลพete koristiti ugraฤ‘enu funkciju set(). Specijalnost od set() metoda je da vraฤ‡a razliฤite elemente.
  • Moลพete ukloniti duplikate s danog popisa uvozom OrderedDictfrom zbirke. Dostupan je od pythona 2.7 nadalje. OrderedDictdict brine se o vraฤ‡anju razliฤitih elemenata u redoslijedu u kojem je kljuฤ prisutan.
  • Moลพete koristiti for-petlju kojom ฤ‡emo proฤ‡i kroz popis stavki kako bismo uklonili duplikate.
  • Metoda unique() iz Numpy modula moลพe nam pomoฤ‡i ukloniti duplikat s danog popisa.
  • Pandas modul ima unique() metoda koja ฤ‡e nam dati jedinstvene elemente s danog popisa.
  • Kombinacija razumijevanja popisa i nabrajanja koristi se za uklanjanje dupliciranih elemenata s popisa. Enumerate vraฤ‡a objekt s brojaฤem za svaki element na popisu.

Saลพmite ovu objavu uz: