lettura facile

La differenza tra insiemi in Python

In questa lezione ti spiego come calcolare la differenza tra due o più insiemi nel linguaggio Python.

Per ottenere la differenza degli insiemi puoi seguire strade diverse.

L'operatore di differenza A-B

Per calcolare la differenza tra due insiemi usa l'operatore -

A-B

Ti faccio un esempio pratico.

Crea due insiemi nelle variabili A e B tramite la funzione set().

>>> A=set([1,2,3,4,5])
>>> B=set([4,5,6,7])

Digita C=A-B sulla riga di comando

>>> C=A-B

Il risultato è l'insieme differenza A-B

>>> C
{1, 2, 3}

L'insieme differenza è composto dagli elementi dell'insieme A che non appartengono anche all'insieme B.

In questo caso sono gli elementi 1, 2 e 3.

Il metodo difference()

Per la calcolare la differenza tra due insiemi puoi anche usare il metodo .difference() delle variabili set.

A.difference(B)

Ti faccio un esempio pratico.

Crea due insiemi A e B

>>> A=set([1,2,3,4,5])
>>> B=set([4,5,6,7])

Digita A.difference(B) sulla riga comando

>>> D=A.difference(B)

In alternativa puoi usare anche la sintassi set.difference(A,B). Il risultato è sempre lo stesso.

>>> D=set.difference(A,B)

Il risultato è l'insieme differenza A-B.

>>> D
{1, 2, 3}

L'insieme differenza D è composto dagli elementi dell'insieme A che non appartengono anche all'insieme B.

In questo caso sono gli elementi 1, 2 e 3.

Qual è la differenza tra l'operatore A-B e il metodo difference(A,B)? L'operatore meno - e il metodo .difference() ti permettono di raggiungere lo stesso obiettivo, ossia l'insieme differenza A-B. Tuttavia, il metodo .difference() è molto più completo. Ad esempio, puoi usare il metodo difference() tra variabili set e altri oggetti iterabili (liste, tuple, ecc.). Ad esempio, crea una variabile set A e una lista E

>>> A=set([1,2,3,4,5])
>>> E=[4,5,6,7]

Il metodo .difference() ti permette di ottenere la differenza tra l'insieme (A) e la lista (E). Il risultato è un insieme.

>>> A.difference(E)
{1, 2, 3}

L'operatore della differenza, invece, non ti permette di svolgere quest'ultima operazione. Quando digiti A-E il linguaggio Python restituisce un errore perché l'operatore della differenza tra insiemi - puoi usarlo solo se entrambe le variabili sono set.

>>> A-E
Traceback (most recent call last):
TypeError: unsupported operand type(s) for -: 'set' and 'list'

Inoltre, il metodo difference() ti consente di calcolare la differenza tra più insiemi in sequenza.

Ad esempio, definisci tre insiemi A, B e C

>>> A=set([1,2,3,4,5])
>>> B=set([4,5,6,7])
>>> C=set([2,4,6,8])

Poi calcola la differenza usando il metodo difference()

>>> D=A.difference(B,C)

Il risultato finale è l'insieme differenza D=(A-B)-C composto dagli elementi 1 e 3.

>>> D
{1, 3}

Il metodo difference_update()

Il metodo difference_update() calcola la differenza tra due insiemi modificando il contenuto dell'insieme in cui è applicato.

A.difference_update(B)

Ti faccio un esempio pratico.

Crea due insiemi nelle variabili A, B

 

>>> A=set([1,2,3,4,5])
>>> B=set([4,5,6,7])

Digita A.difference(B) per ottenere l'insieme differenza

>>> A.difference_update(B)

Il risultato è l'insieme differenza A=(A-B)-C composto dagli elementi

>>> A
{1, 2, 3}

In questo caso il risultato ha modificato il contenuto stesso dell'insieme A.

Qual è la differenza tra i metodi difference e difference_update? Entrambi i metodi calcolano la differenza tra due insiemi. Il metodo difference modifica il contenuto del primo insieme (minuendo) mentre il metodo difference_updare crea un nuovo insieme senza modificare gli insiemi utilizzati nell'operazione.




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin