logo

Python | Atšķirība starp diviem sarakstiem

Python programmēšanā divu sarakstu salīdzināšana ir izplatīts uzdevums ar vairākām pieejām. Šajā rakstā ir aplūkotas dažādas metodes, kā iegūt atšķirību starp diviem sarakstiem, uzlabot jūsu prasmes apstrādāt sarakstus un salīdzināt datus Python . Pievienojieties mums šajā izsmeļošajā ceļojumā, lai izpētītu dažādas stratēģijas, lai noteiktu atšķirības starp sarakstiem.

burbulis kārtot java

Piemērs



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

Piezīme: Ja jums ir vairāki vienādi elementi, tas nedarbosies. Tādā gadījumā šis kods vienkārši noņems tos pašus elementus.
Tādā gadījumā jūs varat saglabāt katra elementa skaitu abos sarakstos.

Veidi, kā salīdzināt divus sarakstus programmā Python

Ir dažādi veidi, kā salīdzināt divus sarakstus programmā Python. Šeit mēs apspriežam dažas vispārīgi izmantotās metodes divu Python sarakstu salīdzināšanai.

  • Izmantot metodē
  • Saraksta izpratnes izmantošana
  • Izmantot set() Funkcija
  • Izmantot Neskaidrs
  • Izmantojot zip() Funkcija
  • Skaitīt notikumus, izmantojot Skaitītājs

Python atslēgvārdā, lai salīdzinātu divus Python sarakstus

Šajā piemērā kods atkārtojas caur elementiem sarakstā “li1” un pievieno katru elementu “temp3”, ja tas nav iekļauts sarakstā “li2”. Gala rezultātos temp3 ir elementi no “li1”, kas nav ietverti “li2”.



Python3






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

>

>

Izvade

[10, 15, 20, 30]>

Atšķirība starp diviem Python sarakstiem, izmantojot saraksta izpratni

Šajā piemērā kods izveido kopu “s” no saraksta “li2” elementiem un pēc tam ģenerē jaunu sarakstu “temp3”, kas satur elementus no saraksta “li1”, kas nav iekļauti kopā “s”. Visbeidzot, tas izdrukā elementus “temp3”.

Python3




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

>

>

Izvade

[10, 15, 20, 30]>

Atrodiet atšķirību starp diviem Python sarakstiem, izmantojot set ()

Izmantojot šo metodi, mēs nepārprotami pārvēršam sarakstus kopās un pēc tam vienkārši samazinām vienu no otra, izmantojot atņemšanas operatoru. Lai iegūtu vairāk atsauces par komplektu, apmeklējiet Iestati Python . Tā ir līdzīga tehnika, ko izmantojām iepriekš. Vienīgā atšķirība ir tā, ka mēs aizstājām ligzdotās cilpas ar saraksta izpratne sintakse.

Python3




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

>

>

Izvade

[10, 15, 20, 30]>

Izmantojiet Numpy, lai Salīdziniet divus sarakstus programmā Python

The numpy.concatenate() funkcija sasaistīt masīvu secību pa esošu asi. Šajā piemērā kods izmanto NumPy, lai izveidotu masīvus 'li1' un 'li2', atrod kopu atšķirības starp tiem ('dif1' un 'dif2') un savieno šīs atšķirības vienā sarakstā (temp3), beidzot izdrukājot rezultāts.

Python3




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

>

>

Izvade

[10, 15, 20, 30]>

Salīdziniet divus Python sarakstus, izmantojot funkciju zip()

Šajā piemērā kods salīdzina atbilstošos divu sarakstu elementus, li1 un li2, un izveido Būla vērtību sarakstu, kas norāda, vai elementi ir vienādi. Funkcija 'visi' pārbauda, ​​vai visi rezultātu saraksta elementi ir patiesi.

Python3




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

>

>

Izvade

False>

Salīdziniet divus sarakstus, izmantojot skaitīšanas gadījumus, izmantojot skaitītāju

Šajā piemērā kodā tiek izmantota klase Counter no moduļa kolekcijām, lai izveidotu biežuma skaitītājus diviem sarakstiem — li1 un li2. Pēc tam tas salīdzina skaitītājus, lai pārbaudītu, vai sarakstos ir vieni un tie paši elementi ar vienādām frekvencēm, piešķirot rezultātu “are_lists_equal”.

Python3




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

>

>

Izvade

False>