Esegui la sottrazione dalla lista in Python
-
Converti lista in
set
per eseguire la sottrazione dalla lista in Python - Usa la comprensione della lista per ottenere la differenza della lista in Python
Questo tutorial mostra come eseguire la sottrazione della lista, o in altre parole, lista meno lista in Python.
Come definito dalla teoria degli insiemi in matematica, la differenza di due insiemi si riferisce agli elementi di un insieme che non esistono nell’altro insieme.
Ad esempio, se dichiariamo questi due liste:
list1 = [1, 2, 4]
list2 = [2, 3]
La differenza di list1 - list2
sarebbe [1, 4]
, mentre list2 - list1
sarebbe [3]
.
Converti lista in set
per eseguire la sottrazione dalla lista in Python
Le operazioni di teoria degli insiemi sono supportate in Python. Tuttavia, solo il tipo di dati set
supporta queste operazioni. Pertanto, per utilizzare l’operazione set
, le liste devono essere convertite in set. Ciò è possibile avvolgendo una lista attorno alla funzione set()
.
Nota: la conversione di una lista in un set rimuoverà qualsiasi tipo di ordine e rimuoverà i valori duplicati dall’lista.
listA = [1, 2, 4, 7, 9, 11, 11, 14, 14]
listB = [2, 3, 7, 8, 11, 13, 13, 16]
setA = set(listA)
setB = set(listB)
print("A - B = ", setA - setB)
Produzione:
A - B = {1, 4, 9, 14}
Il risultato restituisce la differenza tra i due set e rimuove i valori duplicati.
Possiamo usare la funzione list()
per convertire il risultato da un set
a una lista.
listA = [1, 2, 4, 7, 9, 11, 11, 14, 14]
listB = [2, 3, 7, 8, 11, 13, 13, 16]
setA = set(listA)
setB = set(listB)
list_diff = list(setA - setB)
print("A - B: ", list_diff)
Produzione:
A - B: [1, 4, 9, 14]
Usa la comprensione della lista per ottenere la differenza della lista in Python
La comprensione dell’lista può essere utilizzata per verificare se un elemento esiste solo nel primo lista ma non esiste nel secondo lista. Questa soluzione consente di eseguire l’operazione di differenza senza convertire l’lista in un set.
listA = [1, 2, 4, 7, 9, 11, 11, 14, 14]
listB = [2, 3, 7, 8, 11, 13, 13, 16]
listSub = [elem for elem in listA if elem not in listB]
print("A - B =", listSub)
Produzione:
A - B = [1, 4, 9, 14, 14]
Questa soluzione non altera l’ordine dell’lista e rimuove i duplicati.
Tuttavia, il valore 11
viene ripetuto due volte in listA
, ed entrambe le iterazioni di 11
vengono rimosse dal risultato di A - B
poiché 11
esiste in entrambi gli insiemi. Questo comportamento è come previsto.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedInArticolo correlato - Python List
- Converti un dizionario in una lista in Python
- Rimuovi i duplicati dall'lista in Python
- Rimuovi tutte le occorrenze di un elemento da una lista in Python
- Ottieni la media di una lista in Python
- Qual è la differenza tra i metodi di elencazione, aggiungere ed estendere
- Come convertire una lista in stringa in Python