Kuinka poistaa kaksoiskappaleet luettelosta Python

Python poistaa kaksoiskappaleet luettelosta

Lista on säilö, joka sisältää erilaisia Python objektit, jotka voivat olla kokonaislukuja, sanoja, arvoja jne. Se vastaa taulukkoa muissa ohjelmointikielissä.

Joten tässä käydään läpi erilaisia ​​tapoja, joilla voimme poistaa kaksoiskappaleita tietystä luettelosta Python.

Tapa 1) Poista kaksoiskappaleet luettelosta käyttämällä Set

Voit poistaa kaksoiskappaleet luettelosta käyttämällä sisäänrakennettua toimintoa set(). Set()-metodin erikoisuus on, että se palauttaa erilliset elementit.

Meillä on luettelo: [1,1,2,3,2,2,4,5,6,2,1]. Luettelossa on monia kaksoiskappaleita, jotka meidän on poistettava ja palautettava vain erilliset elementit. Luettelo annetaan set() sisäänrakennettu toiminto. Later lopullinen luettelo näytetään käyttämällä list() sisäänrakennettu toiminto alla olevan esimerkin mukaisesti.


Saatu tulos on erillisiä elementtejä, joissa kaikki kaksoiselementit eliminoidaan.
esimerkki

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

lähtö:

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

Tapa 2) Väliaikaisen luettelon käyttö

Kopioiden poistaminen tiedosta list, voit käyttää tyhjää väliaikaista luetteloa. Tätä varten sinun on ensin selattava luetteloa, jossa on kaksoiskappaleita, ja lisättävä yksilölliset kohteet väliaikaiseen luetteloon. Later väliaikainen luettelo on liitetty pääluetteloon.

esimerkki
Tässä on toimiva esimerkki väliaikaisesta luettelosta.

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)

lähtö:

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

Menetelmä 3) Dict

Voimme poistaa kaksoiskappaleet annetusta luettelosta tuomalla OrderedDict kokoelmista. Se on saatavilla python 2.7:stä alkaen. OrderedDict huolehtii erillisten elementtien palauttamisesta sinulle siinä järjestyksessä, jossa avain on läsnä.

Käyttäkäämme luetteloa ja käyttöä fromkeys() menetelmä, joka on käytettävissä OrderedDictissä saadaksesi yksilölliset elementit luettelosta.

Hyödyntämään OrderedDict.fromkey() -menetelmällä, sinun on tuotava OrderedDict kokoelmista alla olevan kuvan mukaisesti:

from collections import OrderedDict

Tässä on esimerkki kaksoiskappaleiden poistamisesta käyttämällä OrderedDict.fromkeys() menetelmällä.

esimerkki

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

lähtö:

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

alkaen Python 3.5+ alkaen, voimme käyttää tavallista dict.fromkeys() saadaksesi luettelosta erilliset elementit. The dict.fromkeys() menetelmät palauttavat avaimia, jotka ovat ainutlaatuisia ja auttavat pääsemään eroon päällekkäisistä arvoista.

Esimerkki, joka näyttää toiminnan dict.fromkeys() luettelossa yksilöllisten kohteiden ilmoittamiseksi on seuraava:

esimerkki

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

lähtö:

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

Menetelmä 4) For-silmukan käyttö

Käyttäminen for-silmukka, käymme läpi kohteiden luettelon kopioiden poistamiseksi.

Alusta ensin taulukko tyhjäksi eli myFinallist = [].Lisää for-silmukan sisään tarkista, ovatko luettelon kohteet taulukossa myFinallist. Jos kohteita ei ole olemassa, lisää kohde taulukkoon myFinalist käyttämällä append() menetelmällä.

Joten aina kun päällekkäinen kohde havaitaan, se on jo myFallis-taulukossa eikä sitä lisätä. Tarkastetaan nyt sama alla olevasta esimerkistä:

esimerkki

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

lähtö:

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

Menetelmä 5) Listan ymmärtäminen

Listan ymmärtämiset ovat Python funktioita, joita käytetään luomaan uusia sarjoja (kuten luetteloita, sanakirjoja jne.) käyttämällä jo luotuja sekvenssejä. Tämä auttaa vähentämään pidempiä silmukoita ja helpottamaan koodin lukemista ja ylläpitoa.

Käytämme luettelon ymmärtämistä poistaaksemme kaksoiskappaleet annetusta luettelosta.

esimerkki

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)

lähtö:

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

Menetelmä 6) Numpy ainutlaatuinen() -menetelmän käyttö.

Menetelmä unique() Numpy-moduulista voi auttaa meitä poistamaan kaksoiskappaleet annetusta luettelosta.

Jotta voit työskennellä Numpy first import numpy -moduulin kanssa, sinun on noudatettava näitä vaiheita:

Vaihe 1) Tuo Numpy-moduuli

import numpy as np

Vaihe 2) Käytä luetteloasi kaksoiskappaleiden kanssa yksilöllisen menetelmän sisällä alla olevan kuvan mukaisesti. Tulos muunnetaan takaisin luettelomuotoon käyttämällä tolist() menetelmällä.

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

Vaihe 3) Tulosta lopuksi luettelo alla olevan kuvan mukaisesti:

print(myFinalList)

Lopullinen koodi tulosteineen on seuraava:

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

lähtö:

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

Menetelmä 7) Pandas-menetelmien käyttö

Pandas-moduulissa on a unique() menetelmä, joka antaa meille ainutlaatuiset elementit annetusta luettelosta.

Jotta voit työskennellä Pandas-moduulin kanssa, sinun on noudatettava näitä vaiheita:

Vaihe 1) Tuo Pandas-moduuli

import pandas as pd

Vaihe 2) Käytä luetteloasi kaksoiskappaleiden sisällä unique() alla olevan kuvan mukainen menetelmä:

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

Vaihe 3) Tulosta luettelo alla olevan kuvan mukaisesti:

print(myFinalList)

Lopullinen koodi tulosteineen on seuraava:

import pandas as pd

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

lähtö:

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

Menetelmä 8) enumerate()- ja listan ymmärtäminen

Tässä luettelon ymmärtämisen ja luetteloimisen yhdistelmä, joka poistaa päällekkäiset elementit. Enumerate palauttaa objektin, jossa on laskuri jokaiselle luettelon elementille. Esimerkiksi (0,1), (1,2) jne. Tässä ensimmäinen arvo on indeksi ja toinen arvo on luettelon kohde. W

Jokainen elementti tarkistetaan, jos se on luettelossa, ja jos on, se poistetaan luettelosta.

esimerkki

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

lähtö:

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

Yhteenveto

  • Voit poistaa kaksoiskappaleet luettelosta käyttämällä sisäänrakennettua toimintoa set(). Erikoisuutena set() menetelmä on, että se palauttaa erilliset elementit.
  • Voit poistaa kaksoiskappaleet annetusta luettelosta tuomalla OrderedDictfrom kokoelmat. Se on saatavilla python 2.7:stä alkaen. OrderedDictdict huolehtii erillisten elementtien palauttamisesta sinulle siinä järjestyksessä, jossa avain on läsnä.
  • Voit käyttää for-silmukkaa, jonka avulla käymme läpi kohteiden luettelon kopioiden poistamiseksi.
  • Menetelmä unique() Numpy-moduulista voi auttaa meitä poistamaan kaksoiskappaleet annetusta luettelosta.
  • Pandas-moduulissa on a unique() menetelmä, joka antaa meille ainutlaatuiset elementit annetusta luettelosta.
  • Listan ymmärtämisen ja luetteloimisen yhdistelmää käytetään poistamaan päällekkäiset elementit luettelosta. Enumerate palauttaa objektin, jossa on laskuri jokaiselle luettelon elementille.