Python poistaa kaksoiskappaleet luettelosta

Sisällysluettelo:

Anonim

Luettelo on säilö, joka sisältää erilaisia ​​Python-objekteja, jotka voivat olla kokonaislukuja, sanoja, arvoja jne. Se vastaa matriisia muilla ohjelmointikielillä.

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

Tässä opetusohjelmassa opit:

  • Poista kaksoiskappaleet luettelosta käyttämällä Aseta
  • Poista kaksoiskappaleet luettelosta väliaikaisen luettelon avulla.
  • Poista kaksoiskappaleet luettelosta Dictin avulla
  • Poista kaksoiskappaleet luettelosta for-loop-toiminnolla
  • Poista kaksoiskappaleet luettelosta ymmärtämällä luetteloa
  • Poista kaksoiskappaleet luettelosta Numpy unique () -menetelmällä.
  • Poista kaksoiskappaleet luettelosta Pandas-menetelmillä
  • Poista kaksoiskappaleet käyttämällä luetteloa () ja luettelon ymmärtämistä

Poista kaksoiskappaleet luettelosta käyttämällä Aseta

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

Meillä on luettelo: [1,1,2,3,2,2,4,5,6,2,1]. Luettelossa on monia kopioita, jotka meidän on poistettava ja palautettava vain erilliset elementit. Luettelo annetaan sisäänrakennetulle funktiolle set (). Myöhemmin lopullinen luettelo näytetään käyttämällä luettelon () sisäänrakennettua toimintoa, kuten alla olevassa esimerkissä on esitetty.

Saatu tulos on erilliset elementit, joissa kaikki kaksoiskappaleet eliminoidaan.

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

Tuotos:

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

Poista kaksoiskappaleet luettelosta väliaikaisen luettelon avulla

Voit poistaa kaksoiskappaleet tietystä luettelosta käyttämällä tyhjää väliaikaista luetteloa. Tätä varten sinun on selattava luetteloa, jossa on kaksoiskappaleet, ja lisättävä ainutlaatuiset kohteet väliaikaiseen luetteloon. Myöhemmin väliaikainen luettelo määritetään päälistalle.

Tässä on toimiva esimerkki väliaikaisen luettelon käytöstä.

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_listprint("List After removing duplicates ", my_list)

Tuotos:

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

Poista kaksoiskappaleet luettelosta Dictin avulla

Voimme poistaa kaksoiskappaleet annetusta luettelosta tuomalla OrderedDict-kokoelmista. Se on saatavana python2.7-versiosta alkaen. OrderedDict huolehtii palauttamaan sinulle erilliset elementit siinä järjestyksessä, jossa avain on läsnä.

Hyödynnetään OrderedDict-luettelossa käytettävissä olevaa luetteloa ja fromkeys () -menetelmää saadaksesi yksilölliset elementit luettelosta.

Jos haluat käyttää OrderedDict.fromkey () -menetelmää, sinun on tuotava OrderedDict kokoelmista alla olevan kuvan mukaisesti:

from collections import OrderedDict

Tässä on esimerkki kaksoiskappaleiden poistamisesta OrderedDict.fromkeys () -menetelmällä.

from collections import OrderedDictmy_list = ['a','x','a','y','a','b','b','c']my_final_list = OrderedDict.fromkeys(my_list)print(list(my_final_list))

Tuotos:

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

Python 3.5+: sta lähtien voimme käyttää säännöllisiä dict.fromkeys () -toimintoja saadaksesi erilliset elementit luettelosta. Dict.fromkeys () -menetelmät palauttavat avaimet, jotka ovat ainutlaatuisia ja auttavat pääsemään eroon päällekkäisistä arvoista.

Seuraava esimerkki, joka näyttää dict.fromkeys (): n toiminnan luettelossa yksilöllisten kohteiden antamiseksi, on seuraava:

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

Tuotos:

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

Poista kaksoiskappaleet luettelosta for-loop-toiminnolla

For-loop -sovelluksen avulla siirrymme luetteloon kohteista kaksoiskappaleiden poistamiseksi.

Alusta ensin taulukko tyhjäksi eli myFinallist = []. Lisää for-silmukan sisään tarkista, onko listan kohteita olemassa taulukossa myFinallist. Jos kohteita ei ole, lisää kohde matriisiin myFinallist käyttämällä liitettä () menetelmä.

Joten aina kun päällekkäinen kohde havaitaan, se on jo läsnä taulukossa myFinallist eikä sitä lisätä. Tarkistetaan nyt sama alla olevasta esimerkistä:

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

Tuotos:

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

Poista kaksoiskappaleet luettelosta ymmärtämällä luetteloa

Luettelon ymmärtäminen on Python-toimintoa, jota käytetään luomaan uusia sekvenssejä (kuten luetteloita, sanakirjoja jne.) Käyttämällä jo luotuja sekvenssejä. Tämä auttaa vähentämään pidempiä silmukoita ja helpottamaan koodisi lukemista ja ylläpitoa.

Hyödynnetään luettelon ymmärtämistä poistamaan kaksoiskappaleet annetusta luettelosta.

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)

Tuotos:

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

Poista kaksoiskappaleet luettelosta Numpy unique () -menetelmällä.

Numpy-moduulin ainutlaatuinen menetelmä () voi auttaa meitä poistamaan kaksoiskappaleet annetusta luettelosta.

Voit työskennellä Numpy first import numpy -moduulin kanssa seuraavasti:

Vaihe 1 ) Tuo Numpy-moduuli

import numpy as np

Vaihe 2) Käytä luetteloasi kaksoiskappaleita ainutlaatuisen menetelmän sisällä alla esitetyllä tavalla. Lähtö muunnetaan takaisin luettelomuotoon käyttämällä tolist () -menetelmää.

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

Vaihe 3) Tulosta lopuksi luettelo alla olevan kuvan mukaisesti:

print(myFinalList)

Lopullinen tuotoskoodi on seuraava:

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

Tuotos:

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

Poista kaksoiskappaleet luettelosta Pandas-menetelmillä

Pandas-moduulilla on ainutlaatuinen () -menetelmä, joka antaa meille ainutlaatuiset elementit annetusta luettelosta.

Voit työskennellä Pandas-moduulin kanssa seuraavasti:

Vaihe 1) Tuo Pandas-moduuli

import pandas as pd

Vaihe 2) Käytä luetteloasi kaksoiskappaleita ainutlaatuisen () -menetelmän sisällä alla esitetyllä tavalla:

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

Vaihe 3) Tulosta luettelo alla olevan kuvan mukaisesti:

print(myFinalList)

Lopullinen tuotoskoodi on seuraava:

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

Tuotos:

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

Poista kaksoiskappaleet käyttämällä luetteloa () ja luettelon ymmärtämistä

Tässä luettelon ymmärtämisen ja luettelon yhdistelmä päällekkäisten elementtien poistamiseksi. Enumerate palauttaa objektin, jolla on laskuri, jokaiseen luettelon elementtiin. Esimerkiksi (0,1), (1,2) jne. Tässä ensimmäinen arvo on indeksi ja toinen arvo on luettelokohta. W

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

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

Tuotos:

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

Yhteenveto

  • Voit poistaa kaksoiskappaleet luettelosta käyttämällä sisäänrakennettua toimintosarjaa (). Set () -menetelmän erikoisuus on, että se palauttaa erilliset elementit.
  • Voit poistaa kaksoiskappaleet annetusta luettelosta tuomalla OrderedDictfrom-kokoelmia. Se on saatavana python2.7-versiosta alkaen. OrderedDictdict huolehtii siitä, että palautat sinulle erilliset elementit siinä järjestyksessä, jossa avain on läsnä.
  • Voit käyttää for-loop -sovellusta, jonka avulla poistamme päällekkäiset kohteet luettelosta.
  • Numpy-moduulin ainutlaatuinen menetelmä () voi auttaa meitä poistamaan kaksoiskappaleet annetusta luettelosta.
  • Pandas-moduulilla on ainutlaatuinen () -menetelmä, joka antaa meille ainutlaatuiset elementit annetusta luettelosta.
  • Luettelon ymmärtämisen ja luettelon yhdistelmää käytetään poistamaan päällekkäiset elementit luettelosta. Enumerate palauttaa objektin, jolla on laskuri, jokaiseen luettelon elementtiin.