logo

Python | Diferència entre dues llistes

A la programació Python, comparar dues llistes és una tasca habitual amb múltiples enfocaments. Aquest article explora diferents mètodes per obtenir la diferència entre dues llistes, millorant la vostra competència en el maneig de llistes i la comparació de dades en Python . Uneix-te a nosaltres en aquest viatge perspicaç a diverses estratègies per discernir les diferències entre llistes.

Exemple



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

Nota: Quan teniu diversos elements iguals, això no funcionarà. En aquest cas, aquest codi simplement eliminarà els mateixos elements.
En aquest cas, podeu mantenir un recompte de cada element en ambdues llistes.

Maneres de comparar dues llistes a Python

Hi ha diverses maneres de comparar dues llistes a Python. Aquí, estem discutint alguns mètodes d'ús general per comparar dues llistes a Python que segueixen.

  • Ús al mètode
  • Ús de la comprensió de llistes
  • Ús conjunt() Funció
  • Ús Numpy
  • Utilitzant zip() Funció
  • Comptar les ocurrències utilitzant Comptador

Python a la paraula clau per comparar dues llistes a Python

En aquest exemple, el codi itera els elements de la llista `li1`, i afegeix cada element a `temp3` si no està present a la llista `li2`. El resultat final a `temp3` conté elements de `li1` que no estan presents a `li2`.



Python 3

llista java immutable






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

>

>

Sortida

[10, 15, 20, 30]>

Diferència entre dues llistes a Python utilitzant una comprensió de llista

En aquest exemple, el codi crea un conjunt 's' a partir dels elements de la llista 'li2', i després genera una nova llista 'temp3' que conté elements de la llista 'li1' que no estan presents al conjunt 's'. Finalment, imprimeix els elements a 'temp3'.

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

>

>

Sortida

[10, 15, 20, 30]>

Trobeu la diferència entre dues llistes a Python mitjançant set()

En aquest mètode, convertim les llistes en conjunts explícitament i després simplement reduïm una de l'altra mitjançant l'operador de resta. Per a més referències al conjunt, visiteu Estableix en Python . És una tècnica similar a la que hem utilitzat anteriorment. L'única diferència és que hem substituït els bucles imbricats amb el comprensió de llista sintaxi.

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

>

>

Sortida

[10, 15, 20, 30]>

Utilitzeu Numpy per Compara dues llistes en Python

El numpy.concatenar() La funció concatena una seqüència de matrius al llarg d'un eix existent. En aquest exemple, el codi utilitza NumPy per crear matrius `li1` i `li2`, troba les diferències establertes entre ells (`dif1` i `dif2`), i concatena aquestes diferències en una única llista (`temp3`), finalment imprimeix el resultat.

Python 3




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

>

>

Sortida

[10, 15, 20, 30]>

Compareu dues llistes a Python mitjançant la funció zip().

En aquest exemple, el codi compara els elements corresponents de dues llistes, li1 i li2, i crea una llista de valors booleans que indiquen si els elements són iguals. La funció `tot` comprova si tots els elements de la llista de resultats són certs.

Python 3




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

>

>

Sortida

False>

Compareu dues llistes utilitzant el comptador d'ocurrències mitjançant el comptador

En aquest exemple, el codi utilitza la classe `Counter` del mòdul `col·leccions` per crear comptadors de freqüència per a dues llistes, `li1` i `li2`. A continuació, compara els comptadors per comprovar si les llistes tenen els mateixos elements amb les mateixes freqüències, assignant el resultat a `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)>

>

>

Sortida

False>