logo

Python | Ero kahden listan välillä

Python-ohjelmoinnissa kahden luettelon vertailu on yleinen tehtävä useilla lähestymistavoilla. Tässä artikkelissa tarkastellaan erilaisia ​​menetelmiä kahden luettelon välisen eron saamiseksi, jotta voit parantaa luetteloiden käsittelyä ja tietojen vertailua Python . Liity kanssamme tälle oivaltavalle matkalle eri strategioihin, joiden avulla voit havaita luetteloiden väliset erot.

Esimerkki



  Input:   list1 = [10, 15, 20, 25, 30, 35, 40] list2 = [25, 40, 35]   Output:   [10, 15, 20, 30]   Explanation:   resultant list = list1 - list2>

Huomautus: Jos sinulla on useita samoja elementtejä, tämä ei toimi. Siinä tapauksessa tämä koodi yksinkertaisesti poistaa samat elementit.
Siinä tapauksessa voit ylläpitää kunkin elementin määrää molemmissa luetteloissa.

Tapoja vertailla kahta luetteloa Pythonissa

Pythonissa on useita tapoja verrata kahta luetteloa. Täällä keskustelemme joistakin yleisesti käytetyistä menetelmistä kahden seuraavan Python-luettelon vertailuun.

  • Käytä menetelmässä
  • Listan ymmärtämisen käyttäminen
  • Käyttää aseta() Toiminto
  • Käyttää Nuhjuinen
  • Käyttämällä postinumero() Toiminto
  • Laske esiintymät käyttämällä Laskuri

Python avainsanassa kahden Python-luettelon vertailuun

Tässä esimerkissä koodi toistuu listan 'li1' elementtien läpi ja liittää jokaisen elementin 'temp3':een, jos se ei ole luettelossa 'li2'. Temp3:n lopputulos sisältää elementtejä li1:stä, joita ei ole li2:ssa.



Python 3






li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> temp3>=> []> for> element>in> li1:> >if> element>not> in> li2:> >temp3.append(element)> print>(temp3)>

>

>

Lähtö

[10, 15, 20, 30]>

Ero kahden luettelon välillä Pythonissa käyttämällä luettelon ymmärtämistä

Tässä esimerkissä koodi luo joukon 's' luettelon 'li2' elementeistä ja luo sitten uuden luettelon 'temp3', joka sisältää elementtejä luettelosta 'li1', joita ei ole joukossa 's'. Lopuksi se tulostaa elementit temp3:ssa.

Python 3




li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> s>=> set>(li2)> temp3>=> [x>for> x>in> li1>if> x>not> in> s]> print>(temp3)>

>

>

Lähtö

[10, 15, 20, 30]>

Etsi ero kahden luettelon välillä Pythonissa käyttämällä set()

Tässä menetelmässä luettelot muunnetaan joukoiksi eksplisiittisesti ja vähennetään sitten yksinkertaisesti toisista käyttämällä vähennysoperaattoria. Lisää referenssejä sarjasta vierailemalla Asettaa Pythonissa . Se on samanlainen tekniikka, jota käytimme aiemmin. Ainoa ero on, että korvasimme sisäkkäiset silmukat listan ymmärtäminen syntaksi.

Python 3




li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> s>=> set>(li2)> temp3>=> [x>for> x>in> li1>if> x>not> in> s]> print>(temp3)>

>

>

Lähtö

[10, 15, 20, 30]>

Käytä Numpya Vertaa kahta luetteloa Pythonissa

The numpy.concatenate() funktio ketjuttaa taulukoiden sarjan olemassa olevaa akselia pitkin. Tässä esimerkissä koodi käyttää NumPy-komentoa taulukoiden 'li1' ja 'li2' luomiseen, etsii niiden väliset erot ('dif1' ja 'dif2') ja ketjuttaa nämä erot yhdeksi luetteloksi ('temp3') ja tulostaa lopuksi tulos.

Python 3

java geneeriset tuotteet




import> numpy as np> li1>=> np.array([>10>,>15>,>20>,>25>,>30>,>35>,>40>])> li2>=> np.array([>25>,>40>,>35>])> dif1>=> np.setdiff1d(li1, li2)> dif2>=> np.setdiff1d(li2, li1)> temp3>=> np.concatenate((dif1, dif2))> print>(>list>(temp3))>

>

>

Lähtö

[10, 15, 20, 30]>

Vertaile kahta Python-listaa käyttämällä zip()-funktiota

Tässä esimerkissä koodi vertailee kahden listan, li1 ja li2, vastaavia elementtejä ja luo luettelon loogisista arvoista, jotka osoittavat ovatko elementit samanarvoisia. Kaikki-funktio tarkistaa, ovatko kaikki tulosluettelon elementit tosi.

Python 3




li1>=> [>10>,>15>,>20>]> li2>=> [>25>,>40>,>35>]> result>=> [a>=>=> b>for> a, b>in> zip>(li1, li2)]> print>(>all>(result))>

>

>

Lähtö

False>

Vertaa kahta luetteloa käyttämällä Count esiintymät käyttämällä laskuria

Tässä esimerkissä koodi käyttää `Counter`-luokkaa `collections`-moduulista luomaan taajuuslaskurit kahdelle listalle, `li1` ja `li2`. Sitten se vertaa laskureita tarkistaakseen, onko luetteloissa samoja elementtejä samoilla taajuuksilla, ja määrittää tulokseksi 'are_lists_equal'.

Python 3




from> collections>import> Counter> li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> counter1>=> Counter(li1)> counter2>=> Counter(li2)> are_lists_equal>=> counter1>=>=> counter2> print>(are_lists_equal)>

>

>

Lähtö

False>