Elenca intersezioni in Python
-
Ottieni l’intersezione della lista in Python con l’operatore
&
-
Ottieni l’intersezione della lista in Python con il metodo
intersection()
In questo tutorial, discuteremo diversi metodi per ottenere l’intersezione tra due liste in Python.
L’intersezione (o AND) è fondamentalmente un’operazione progettata specificatamente per sets
. Funziona selezionando gli elementi comuni in due set. Ad esempio,
setA = {1, 2, 3, 4, 5}
setB = {0, 2, 4, 6}
print(setA & setB)
Produzione:
{2, 4}
Nell’esempio precedente, setA
e setB
sono due insiemi e l’operatore &
esegue l’operazione di intersezione sugli insiemi.
Per impostazione predefinita, Python non supporta l’esecuzione di intersezioni dirette sugli liste. Ma con un piccolo ritocco, possiamo eseguire l’intersezione anche sugli liste.
Ottieni l’intersezione della lista in Python con l’operatore &
L’operatore &
, come discusso sopra, non può essere utilizzato con gli liste. Quindi, dobbiamo cambiare le nostre liste in insiemi usando il metodo set()
.
list1 = [1, 2, 3, 4, 5]
list2 = [0, 2, 4, 6]
set1 = set(list1)
set2 = set(list2)
set3 = set1 & set2
list3 = list(set3)
print(list3)
Produzione:
[2, 4]
La funzione set()
converte una lista in un set. L’operazione &
restituisce un insieme che contiene tutti gli elementi comuni in entrambi gli insiemi. Come sappiamo, dobbiamo eseguire questa operazione sulle liste piuttosto che sugli insiemi. Quindi, dobbiamo convertire questo set in una lista usando la funzione list()
.
Ottieni l’intersezione della lista in Python con il metodo intersection()
Il metodo intersection()
della classe set
è un altro modo per eseguire l’intersezione sugli insiemi in Python. Simile all’operatore &
, è anche limitato ai soli insiemi. Ma convertendo la list1
in un insieme, possiamo anche usare intersection()
con list1
.
list1 = [1, 2, 3, 4, 5]
list2 = [0, 2, 4, 6]
set1 = set(list1)
set2 = set(list2)
set3 = set(list1).intersection(list2)
list3 = list(set3)
print(list3)
Produzione:
[2, 4]
Il metodo intersection()
restituisce anche un insieme di tutti gli elementi comuni. Quindi, dobbiamo convertirlo in una lista usando la funzione list()
.
Ottieni l’intersezione della lista in Python con le comprensioni della lista
Entrambi i metodi discussi sopra sono progettati per funzionare con insiemi piuttosto che con liste. Poiché tutti sappiamo che un insieme non può avere valori ricorrenti e i suoi elementi non sono ordinati, queste funzioni non funzionano bene se abbiamo valori ricorrenti nei nostri liste o se vogliamo mantenere l’ordine nei nostri liste.
Gli svantaggi dei due metodi precedenti sono illustrati in questo esempio di codifica.
list1 = [1, 2, 3, 2, 4, 5]
list2 = [0, 2, 2, 4, 6]
setintersection = list(set(list1) & set(list2))
intersectionmethod = list(set(list1).intersection(list2))
print("The result of set intersection :")
print(setintersection)
print("The result of intersection() method :")
print(intersectionmethod)
Produzione:
The result of set intersection :
[2, 4]
The result of intersection() method :
[2, 4]
Come mostrato sopra, ci aspettiamo [2, 2, 4]
come risultato corretto ma otteniamo solo [2, 4]
.
La comprensione delle liste è un altro modo di eseguire l’operazione AND
sulle liste in Python. Può gestire valori ricorrenti e anche mantenere l’ordine degli elementi, che non viene mantenuto nei due metodi precedenti.
# Solution 2 Using list comprehensions
list1 = [1, 2, 3, 2, 4, 5]
list2 = [0, 2, 2, 4, 6]
list3 = [x for x in list1 if x in list2]
# all the x values that are in A, if the X value is in B
print(list3)
Produzione:
[2, 2, 4]
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
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