logo

Python | Diferența dintre două liste

În programarea Python, compararea a două liste este o sarcină comună cu abordări multiple. Acest articol explorează diferite metode pentru a obține diferența dintre două liste, îmbunătățindu-vă competența în gestionarea listelor și compararea datelor în Piton . Alăturați-vă nouă în această călătorie perspicace în diverse strategii pentru a discerne diferențele dintre liste.

Exemplu



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

Notă: Când aveți mai multe aceleași elemente, acest lucru nu ar funcționa. În acest caz, acest cod va elimina pur și simplu aceleași elemente.
În acest caz, puteți menține un număr de fiecare element din ambele liste.

Modalități de a compara două liste în Python

Există diferite moduri de a compara două liste în Python. Aici, discutăm câteva metode utilizate în general pentru a compara două liste în Python pe care le urmează.

  • Utilizați în Metodă
  • Utilizarea listei de înțelegere
  • Utilizare a stabilit() Funcţie
  • Utilizare Numpy
  • Folosind zip() Funcţie
  • Numărați aparițiile folosind Tejghea

Python în cuvântul cheie pentru a compara două liste în Python

În acest exemplu, codul iterează prin elementele din lista `li1` și adaugă fiecare element la `temp3` dacă nu este prezent în lista `li2`. Rezultatul final din `temp3` conține elemente din `li1` care nu sunt prezente în `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)>

>

>

Ieșire

plutește în css
[10, 15, 20, 30]>

Diferența dintre două liste în Python folosind o înțelegere a listei

În acest exemplu, codul creează un set „s” din elementele listei „li2”, apoi generează o nouă listă „temp3” care conține elemente din lista „li1” care nu sunt prezente în setul „s”. În cele din urmă, imprimă elementele în „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)>

>

>

Ieșire

[10, 15, 20, 30]>

Găsiți diferența dintre două liste în Python folosind set()

În această metodă, convertim listele în seturi în mod explicit și apoi pur și simplu reducem una de la alta folosind operatorul de scădere. Pentru mai multe referințe, vizitați setul Se setează în Python . Este o tehnică similară pe care am folosit-o anterior. Singura diferență este că am înlocuit buclele imbricate cu înțelegerea listei sintaxă.

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

>

>

Ieșire

[10, 15, 20, 30]>

Folosește Numpy pentru a Comparați două liste în Python

The numpy.concatenate() funcția concatenează o secvență de matrice de-a lungul unei axe existente. În acest exemplu de cod folosește NumPy pentru a crea matrice `li1` și `li2`, găsește diferențele setate dintre ele (`dif1` și `dif2`) și concatenează aceste diferențe într-o singură listă (`temp3`), imprimând în final rezultat.

Python3




înmulțirea matricei în c

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

>

>

Ieșire

[10, 15, 20, 30]>

Comparați două liste în Python folosind funcția zip().

În acest exemplu, codul compară elementele corespunzătoare din două liste, li1 și li2 și creează o listă de valori booleene care indică dacă elementele sunt egale. Funcția `toate` verifică dacă toate elementele din lista de rezultate sunt adevărate.

Python3




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

>

>

Ieșire

False>

Comparați două liste utilizând aparițiile de numărare folosind Counter

În acest exemplu, codul folosește clasa `Counter` din modulul `colecții` pentru a crea contoare de frecvență pentru două liste, `li1` și `li2`. Apoi compară contoarele pentru a verifica dacă listele au aceleași elemente cu aceleași frecvențe, atribuind rezultatul `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)>

>

>

Ieșire

False>