Tutorial sul Python - Impostazione del tipo di dati
- Creare insiemi di Python
- Aggiornamento del set di Python
- Rimuovere elementi da un set di Python
- Operazioni di Python Set
- Metodi degli insiemi di Python
- Altre operazioni di Python set
- Funzioni integrate del set di Python
- Python Frozenset
In questa sezione, imparerete come creare set in Python e come aggiungere e rimuovere elementi dai set.
Il set contiene ** elementi ** unici ed è una lista ** di elementi ** non ordinati.
set
è un oggetto mutabile in modo da poter aggiungere e cancellare elementi da un set.Creare insiemi di Python
Un set in Python può essere creato usando le parentesi graffe {}
e gli elementi sono separati da virgole. Si può anche creare un insieme usando il metodo integrato set()
.
Gli elementi di un insieme possono essere di diversi tipi di dati. Gli elementi di un insieme dovrebbero essere immutabili. Per esempio, si può avere una tupla come elemento dell’insieme ma non si può avere un insieme o un dizionario o una lista come elementi dell’insieme.
>>> x = {3, 5, 7, 2, 4, 5}
>>> print(x) #prints the set variable
{2, 3, 4, 5, 7}
>>> print(type(x)) #checking type of x
<class 'set'>
Si potrebbe usare il metodo set()
con parametri vuoti per creare una lista vuota. Se si scrive {}
per creare un oggetto vuoto, esso viene interpretato come un dizionario:
>>> x = {}
>>> print(type(x))
<class 'dict'>
>>> x = set()
>>> print(type(x))
<class 'set'>
Aggiornamento del set di Python
L’indicizzazione e l’affettatura non possono essere utilizzate per modificare gli elementi di un set perché set
non è un tipo di dati ordinato.
Un singolo elemento può essere aggiunto in un insieme usando il metodo add()
. Se si vuole aggiungere più di un elemento nell’insieme, allora si deve usare il metodo update()
.
>>> s = {2, 4}
>>> print(s)
{2, 4}
>>> s.add(6)
>>> print(s)
{2, 4, 6}
>>> s.update([2, 4, 6])
>>> print(s)
{2, 4, 6}
>>> s.update([5,6], {7, 8, 9})
>>> print(s)
{2, 4, 5, 6, 7, 8, 9}
Rimuovere elementi da un set di Python
Per rimuovere un elemento da un insieme si può usare il metodo discard()
o il metodo remove()
.
La differenza tra questi metodi è che il metodo discard()
non richiederà nulla se l’elemento da cancellare non è nel set mentre, remove()
genererà un errore se l’elemento da cancellare non viene trovato.
>>> s = {2, 4, 5, 6, 7, 8, 9}
>>> print(s)
{2, 4, 5, 6, 7, 8, 9}
>>> s.discard(6)
>>> print(s)
{2, 4, 5, 7, 8, 9}
>>> s.remove(8)
>>> print(s)
{2, 4, 5, 7, 9}
>>> s.discard(6) #no error
>>> s.remove(8) #generated an error
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
s.remove(8)
KeyError: 8
Si può anche usare pop()
per rimuovere un elemento da un set. pop()
rimuove e restituisce un elemento dell’insieme arbitrario.
>>> s = set("Python")
>>> s
{'o', 'n', 'h', 'P', 'y', 't'}
>>> s.pop()
o
>>> s.pop()
n
>>> s
{'h', 'P', 'y', 't'}
>>> s.clear()
>>> print(s)
set()
Si può usare il metodo clear()
per cancellare tutti gli elementi impostati.
>>> s = set("Python")
>>> s.clear()
>>> s
set()
Operazioni di Python Set
È possibile eseguire operazioni come union
, intersection
, difference
e symmetric_difference
.
Supponiamo di avere due set x
e y
:
>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 10, 11, 12}
Unione
L’unione di due set risulta in un nuovo set che contiene tutti gli elementi di entrambi i set.
Per eseguire l’operazione di unione, si può usare l’operatore |
o il metodo union()
.
>>> print(x | y)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
#using union() method on x
>>> x.union(y)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
#union on y
>>> y.union(x)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
Intersezione di insiemi di Python
L’intersezione di due set risulta in un nuovo set contenente gli elementi che sono comuni in entrambi i set.
Per eseguire l’operazione di intersezione, si può usare l’operatore &
o il metodo intersection()
.
>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x & y)
{1, 2, 6}
#using intersection() method on x
>>> x.intersection(y)
{1, 2, 6}
#intersection on y
>>> y.intersection(x)
{1, 2, 6}
Differenza degli insiemi di Python
La differenza tra due set risulta in un nuovo set che contiene elementi del primo set che non sono presenti nel secondo set.
Per esempio, x - y
sono elementi di x
non in y
. Allo stesso modo, y - x
è costituito da elementi di y
non in x
.
Per eseguire la differenza, si può usare l’operatore -
o il metodo difference()
.
>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x - y)
{3, 4, 5}
#using difference() method on x
>>> x.difference(y)
{3, 4, 5}
#diference on y
>>> y.difference(x)
{8, 9, 7}
Insiemi di Python Differenza simmetrica
La differenza simmetrica di due set risulta in un nuovo set che contiene elementi che non sono comuni in entrambi i set.
Per eseguire la differenza simmetrica, si può usare l’operatore ^
o il metodo symmetric_difference()
.
>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x ^ y)
{3, 4, 5, 7, 8, 9}
#using symmetric_difference() method on x
>>> x.symmetric_difference(y)
{3, 4, 5, 7, 8, 9}
#symmetric_diference on y
>>> y.symmetric_difference(x)
{3, 4, 5, 7, 8, 9}
Metodi degli insiemi di Python
Di seguito è riportato l’lista dei metodi che possono essere applicati sui set in Python:
Metodo | Descrizione |
---|---|
add() |
aggiungere un elemento ad un set |
clear() |
cancella gli elementi del set (cancella l’intero set) |
copy() |
restituire la copia di un set |
difference() |
restituire un nuovo set che contiene elementi del primo set che non sono presenti nel secondo set. |
difference_update() |
rimuovere tutti gli elementi di un altro set dall’attuale set |
discard() |
rimuovere un elemento specifico da un set |
intersection() |
restituire un nuovo set contenente gli elementi comuni ad entrambi i set. |
intersection_update() |
aggiornare un set con l’intersezione di questo set con un altro set |
isdisdisjoint() |
restituisce un True quando due set risultano in un’intersezione nulla |
issubset() |
restituire un True quando un altro set ha il set corrente |
issuperset() |
restituire un True quando il set corrente ha un altro set |
pop() |
restituire un elemento da un set |
remove() |
rimuovere un elemento specifico da un set. Se l’elemento non è nel set verrà generato un errore. |
symmetric_difference() |
restituire un nuovo set che contiene elementi non comuni in entrambi i set. |
symmetric_difference_update() |
aggiornare un set con la differenza simmetrica di questo set con un altro set |
union() |
restituire un nuovo set contenente tutti gli elementi di entrambi i set. |
update() |
aggiornare un set con l’unione di questo set con un altro set |
Altre operazioni di Python set
Controllo dei membri del set
La parola chiave in
verifica se un elemento è un membro dell’insieme o meno.
>>> s = set("Blue")
>>> print('o' in s)
False
>>> print('l' in s)
True
Iterare attraverso un set
Si può iterare attraverso un set utilizzando il bucle for
loop:
for i in set("Blue"):
print(i)
Risultato:
B
l
u
e
Funzioni integrate del set di Python
Di seguito sono riportate alcune delle funzioni integrate che possono essere utilizzate con i set per eseguire diversi compiti:
Funzioni | Descrizione |
---|---|
all() |
restituisce True quando tutti gli elementi dell’insieme sono True . Restituisce anche True quando l’insieme è vuoto. |
any() |
restituire True quando uno qualsiasi degli elementi dell’insieme è True . Restituisce False quando l’insieme è vuoto. |
enumerate() |
restituire l’indice e il valore di tutti gli elementi dell’insieme come tupla. Restituisce un oggetto enumerate . |
len() |
restituire il numero di articoli di un set o la lunghezza del set. |
set() |
definire un set. |
max() |
restituire la voce massima del set. |
min() |
restituire la voce minima del set. |
sorted() |
restituire una lista ordinata di elementi di un set. |
sum() |
restituire la somma di tutti gli elementi del set. |
Python Frozenset
Frozenset è un set speciale i cui elementi non possono essere aggiornati una volta assegnati. I Frozenset sono set immutabili.
Poiché i set sono mutevoli, non è possibile utilizzarli come chiave per il dizionario, ma i set congelati sono immutabili, quindi è possibile utilizzare i set congelati come chiavi di dizionario.
Un frozenset può essere creato usando il metodo frozenset()
.
Di seguito sono riportati alcuni dei metodi supportati da frozenset:
copy()
difference()
intersection()
isdisdisjoint()
issubset()
issuperset()
symmetric_difference()
union()
>>> x = frozenset([2,6,3,9])
>>> y = frozenset([6,1,2,4])
>>> x.difference(y)
frozenset({9, 3})
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook