logo

Python | Skillnad mellan två listor

I Python-programmering är det en vanlig uppgift att jämföra två listor med flera tillvägagångssätt. Den här artikeln utforskar olika metoder för att få fram olikheten mellan två listor, förbättra din skicklighet i att hantera listor och datajämförelse i Pytonorm . Följ med oss ​​på denna insiktsfulla resa till olika strategier för att urskilja skillnader mellan listor.

Exempel



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

Notera: När du har flera samma element skulle detta inte fungera. I så fall kommer den här koden helt enkelt att ta bort samma element.
I så fall kan du behålla en räkning av varje element i båda listorna.

Sätt att jämföra två listor i Python

Det finns olika sätt att jämföra två listor i Python. Här diskuterar vi några allmänt använda metoder för att jämföra två listor i Python som följer.

kassan med git
  • Använd i Metod
  • Använda listförståelse
  • Använda sig av uppsättning() Fungera
  • Använda sig av Numpy
  • Använder sig av blixtlås() Fungera
  • Räkna händelser med hjälp av Disken

Python i nyckelord för att jämföra två listor i Python

I det här exemplet itererar koden genom element i listan `li1` och lägger till varje element till `temp3` om det inte finns i listan `li2`. Slutresultatet i `temp3` innehåller element från `li1` som inte finns i `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)>

>

>

Produktion

[10, 15, 20, 30]>

Skillnad mellan två listor i Python med hjälp av en listförståelse

I det här exemplet skapar koden ett set 's' från elementen i listan 'li2' och genererar sedan en ny lista 'temp3' som innehåller element från listan 'li1' som inte finns i set 's'. Slutligen skriver den ut elementen i 'temp3'.

Python3

myra vs maven




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

>

>

Produktion

[10, 15, 20, 30]>

Hitta skillnaden mellan två listor i Python med set()

I den här metoden omvandlar vi listorna till uppsättningar explicit och reducerar sedan helt enkelt den ena från den andra med hjälp av subtraheringsoperatorn. För fler referenser på uppsättningen besök Utspelar sig i Python . Det är en liknande teknik som vi använde tidigare. Den enda skillnaden är att vi ersatte de kapslade slingorna med listförståelse syntax.

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

>

>

Produktion

[10, 15, 20, 30]>

Använd Numpy för att Jämför två listor i Python

De numpy.concatenate() funktion sammanfoga en sekvens av arrayer längs en befintlig axel. I det här exemplet använder koden NumPy för att skapa arrayerna `li1` och `li2`, hittar uppsättningsskillnaderna mellan dem (`dif1` och `dif2`), och sammanfogar dessa skillnader till en enda lista (`temp3`), och skriv slutligen ut resultat.

Python3

prime ingen kod i java




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

>

>

Produktion

[10, 15, 20, 30]>

Jämför två listor i Python med hjälp av zip()-funktionen

I det här exemplet jämför koden motsvarande element i två listor, li1 och li2, och skapar en lista med booleska värden som anger om elementen är lika. 'alla'-funktionen kontrollerar om alla element i resultatlistan är Sanna.

Python3




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

>

>

Produktion

False>

Jämför två listor med hjälp av räkneförekomster med räknare

I det här exemplet använder koden `Counter`-klassen från `collections`-modulen för att skapa frekvensräknare för två listor, `li1` och `li2`. Den jämför sedan räknarna för att kontrollera om listorna har samma element med samma frekvenser, och tilldelar resultatet till `are_listor_lika`.

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

>

>

Produktion

omvandlarsträng till datum
False>