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.