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