Kuidas eemaldada loendist duplikaadid Python

Python eemaldage loendist duplikaadid

Loend on konteiner, mis sisaldab erinevaid Python objektid, mis vรตivad olla tรคisarvud, sรตnad, vรครคrtused jne. See on massiivi ekvivalent teistes programmeerimiskeeltes.

Nii et siin kรคsitleme erinevaid viise, kuidas saame antud loendist duplikaate eemaldada Python.

1. meetod) Eemaldage loendist duplikaadid, kasutades valikut Mรครคra

Duplikaatide loendist eemaldamiseks saate kasutada sisseehitatud funktsiooni set(). Set() meetodi eripรคra seisneb selles, et see tagastab erinevad elemendid.

Meil on nimekiri: [1,1,2,3,2,2,4,5,6,2,1]. Loendis on palju duplikaate, mille peame eemaldama ja tagasi hankima ainult erinevad elemendid. Nimekiri antakse set() sisseehitatud funktsioon. Later lรตplik loend kuvatakse kasutades list() sisseehitatud funktsioon, nagu on nรคidatud allolevas nรคites.


Saame vรคljundiks erinevad elemendid, kus kรตik duplikaadid elimineeritakse.
Nรคide

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

Vรคljund:

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

2. meetod) Ajutise loendi kasutamine

Duplikaatide eemaldamiseks antud list, saate kasutada tรผhja ajutist loendit. Selleks peate kรตigepealt lรคbi vaatama duplikaatide loendi ja lisama unikaalsed รผksused ajutisse loendisse. Later ajutine nimekiri on mรครคratud pรตhiloendile.

Nรคide
Siin on toimiv nรคide ajutise loendi kasutamisest.

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)

Vรคljund:

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

3. meetod) Dict

Importimise teel saame antud loendist duplikaate eemaldada OrderedDict kollektsioonidest. See on saadaval alates python 2.7-st. OrderedDict hoolitseb selle eest, et tagastataks teile erinevad elemendid vรตtme olemasolu jรคrjekorras.

Kasutagem nimekirja ja kasutage fromkeys() OrderedDictis saadaolevat meetodit unikaalsete elementide loendist hankimiseks.

Et kasutada OrderedDict.fromkey() meetodil, peate importima OrderedDict kogudest, nagu allpool nรคidatud:

from collections import OrderedDict

Siin on nรคide duplikaatide eemaldamiseks kasutades OrderedDict.fromkeys() meetod.

Nรคide

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

Vรคljund:

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

alates Python Alates 3.5+ saame kasutada tavalist dict.fromkeys() eristavate elementide loendist hankimiseks. The dict.fromkeys() meetodid tagastavad vรตtmed, mis on kordumatud ja aitavad vabaneda korduvatest vรครคrtustest.

Nรคide, mis nรคitab selle toimimist dict.fromkeys() kordumatute esemete andmise loendis on jรคrgmine:

Nรคide

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

Vรคljund:

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

4. meetod) For-loop kasutamine

Kasutamine for-loop, lรคbime duplikaatide eemaldamiseks รผksuste loendi.

Esmalt lรคhtestage massiiv tรผhjaks, st myFinallist = [].For-loopi sisse lisage kontroll, kas loendis olevad รผksused on massiivis olemas myFinallist. Kui รผksusi pole olemas, lisage รผksus massiivi myFinalist, kasutades nuppu append() meetod.

Nii et iga kord, kui duplikaatรผksust kohtatakse, on see juba massiivis myFinalist olemas ja seda ei lisata. Kontrollime nรผรผd sama allolevas nรคites:

Nรคide

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

Vรคljund:

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

5. meetod) Loendist arusaamise kasutamine

Loendi mรตistmised on Python funktsioonid, mida kasutatakse uute jadade (nt loendid, sรตnastikud jne) loomiseks, kasutades juba loodud jadasid. See aitab teil vรคhendada pikemaid silmuseid ning muuta koodi hรตlpsamini loetavaks ja hooldatavaks.

Kasutame loendi mรตistmist, et eemaldada antud loendist duplikaadid.

Nรคide

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)

Vรคljund:

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

6. meetod) Numpy ainulaadse() meetodi kasutamine.

Meetod unique() Numpy moodulist vรตib aidata meil duplikaadi antud loendist eemaldada.

Numpy first import numpy mooduliga tรถรถtamiseks peate jรคrgima neid samme.

Samm 1) Impordi Numpy moodul

import numpy as np

Step 2) Kasutage oma loendit kordumatu meetodi duplikaatidega, nagu allpool nรคidatud. Vรคljund teisendatakse tagasi loendivormingusse kasutades tolist() meetod.

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

Step 3) Lรตpuks printige loend, nagu allpool nรคidatud:

print(myFinalList)

Lรตplik kood koos vรคljundiga on jรคrgmine:

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

Vรคljund:

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

7. meetod) Panda meetodite kasutamine

Panda moodulil on a unique() meetod, mis annab meile antud loendist ainulaadsed elemendid.

Pandase mooduliga tรถรถtamiseks peate jรคrgima neid samme:

Step 1) Impordi Panda moodul

import pandas as pd

Step 2) Kasutage oma loendit duplikaatidega unique() meetod, nagu allpool nรคidatud:

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

Step 3) Printige loend, nagu allpool nรคidatud:

print(myFinalList)

Lรตplik kood koos vรคljundiga on jรคrgmine:

import pandas as pd

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

Vรคljund:

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

8. meetod) enumerate() ja loendi mรตistmise kasutamine

Siin on loendi mรตistmise ja loendamise kombinatsioon dubleerivate elementide eemaldamiseks. Loendamine tagastab loendi iga elemendi loenduriga objekti. Nรคiteks (0,1), (1,2) jne. Siin on esimene vรครคrtus indeks ja teine โ€‹โ€‹vรครคrtus on loendi element. W

Iga elementi kontrollitakse, kas see on loendis olemas, ja kui see on olemas, eemaldatakse see loendist.

Nรคide

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

Vรคljund:

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

kokkuvรตte

  • Duplikaatide loendist eemaldamiseks saate kasutada sisseehitatud funktsiooni set(). Eriala set() meetod on see, et see tagastab erinevad elemendid.
  • Importides saate antud loendist duplikaate eemaldada OrderedDictfrom kollektsioonid. See on saadaval alates python 2.7-st. OrderedDictdict hoolitseb selle eest, et tagastataks teile erinevad elemendid vรตtme olemasolu jรคrjekorras.
  • Vรตite kasutada tsรผklit, mille abil me lรคbime รผksuste loendi duplikaatide eemaldamiseks.
  • Meetod unique() Numpy moodulist vรตib aidata meil duplikaadi antud loendist eemaldada.
  • Panda moodulil on a unique() meetod, mis annab meile antud loendist ainulaadsed elemendid.
  • Loendi mรตistmise ja loendamise kombinatsiooni kasutatakse dubleerivate elementide loendist eemaldamiseks. Loendamine tagastab loendi iga elemendi loenduriga objekti.

Vรตta see postitus kokku jรคrgmiselt: