013 Python3 – Variabili ad indice [Liste] + (Tuple) + {Set} + {Dizionari}.

15 Gennaio, 2023 (22:59) | Linux | By: sargonsei

013 Python 3 – Variabili ad indice [Liste] + (Tuple) + {Set} + {Dizionari}.
In questi appunti, per “Variabili ad indice” si intendono delle variabili il cui nome è qualcosa tipo VAR[INDICE] dove VAR[] è il nome della variabile, e [INDICE] è un numero, o una variabile che contiene un numero. Le variabili ad indice hanno caratteristiche diverse a seconda della tipologia, quindi è molto comune che i testi che ne spiegano il funzionamento si riferiscono a queste variabili citando la tipologia delle stesse, vale a dire LISTA, TUPLA, SET, DIZIONARIO. Le variabili tipo DIZIONARIO possono avere un indice sia numerico, sia alfanumerico.
In fase di definizione: il contenuto di variabili tipo TUPLA non necessita di essere racchiuso fra parentesi (ma può essere racchiuso fra parentesi tonde); il contenuto di variabili tipo LISTA deve essere racchiuso fra parentesi quadre; il contenuto di variabili tipo SET e/o tipo DIZIONARIO deve essere racchiuso fra parentesi graffe.
Seguono i miei appunti nei quali spiego il funzionamento di ciascun tipo di variabile.

1) La LISTA è un tipo di variabile contenente singoli elementi racchiusi fra parentesi quadre e separati gli uni dagli altri da una virgola, ciascuno dei quali può essere: richiamato, sostituito, cancellato, aggiunto. Ciascun singolo elemento della lista può essere richiamato scrivendo il nome della variabile tipo LISTA seguita da un numero [racchiuso fra parentesi quadre] che indica la posizione dell’elemento della LISTA che si intende richiamare.
Seguono esempi di sintassi seguiti da commento esplicativo relativo all’effetto del comando stesso.
VAR = [8, "Lista", "46", 80, 2] # Imposta una lista VAR di 5 elementi
type(VAR) # Verifica la classe della variabile VAR
print(VAR) # Visualizza tutti gli elementi contenuti in VAR
print(VAR[1]) # Visualizza il secondo elemento da sinistra della lista VAR
print(VAR[-1]) # Visualizza il primo elemento da destra della lista VAR
A = VAR[0] + VAR[-1]; VAR.append(A) # Calcola un sesto elemento e lo aggiunge alla lista VAR
print(VAR) # Visualizza tutti gli elementi contenuti nella lista VAR
A = VAR[1] + VAR[2]; VAR.append(A) # Crea un settimo elemento e lo aggiunge alla lista VAR
print(VAR) # Visualizza tutti gli elementi contenuti nella lista VAR
RIMOSSO=VAR.pop(1) # Toglie dalla lista VAR il secondo elemento, e lo mette nella variabile RIMOSSO
print(VAR) # Visualizza tutti gli elementi contenuti nella lista VAR
print(RIMOSSO) # Visualizza il contenuto della variabile RIMOSSO
VAR[0] = 2 # Sostituisce il primo elemento della lista VAR col numero 2
print(VAR) # Visualizza tutti gli elementi contenuti nella lista VAR
VAR.remove(2) # Rimuove il primo numero 2 contenuto nella lista VAR
print(VAR) # Visualizza tutti gli elementi contenuti nella lista VAR
del VAR [1] # Toglie dalla lista VAR il secondo elemento
print(VAR) # Visualizza tutti gli elementi contenuti nella lista VAR

Segue un esempio di output da SHELL IDLE
>>> VAR = [8, "Lista", "46", 80, 2] # Imposta una lista VAR di 5 elementi
>>> type(VAR) # Verifica la classe della variabile VAR
< class 'list'>
>>> print(VAR) # Visualizza tutti gli elementi contenuti in VAR
[8, 'Lista', '46', 80, 2]
>>> print(VAR[1]) # Visualizza il secondo elemento da sinistra della lista VAR
Lista
>>> print(VAR[-1]) # Visualizza il primo elemento da destra della lista VAR
2
>>> A = VAR[0] + VAR[-1]; VAR.append(A) # Aggiunge un sesto elemento alla lista VAR
>>> print(VAR) # Visualizza tutti gli elementi contenuti nella lista VAR
[8, 'Lista', '46', 80, 2, 10]
>>> A = VAR[1] + VAR[2]; VAR.append(A) # Crea un settimo elemento e lo aggiunge alla lista VAR
>>> print(VAR) # Visualizza tutti gli elementi contenuti nella lista VAR
[8, 'Lista', '46', 80, 2, 10, 'Lista46']
>>> RIMOSSO=VAR.pop(1) # Toglie dalla lista VAR il secondo elemento, e lo mette nella variabile RIMOSSO
>>> print(VAR) # Visualizza tutti gli elementi contenuti nella lista VAR
[8, '46', 80, 2, 10, 'Lista46']
>>> print(RIMOSSO) # Visualizza il contenuto della variabile RIMOSSO
Lista
>>> VAR[0] = 2 # Sostituisce il primo elemento della lista VAR col numero 2
>>> print(VAR) # Visualizza tutti gli elementi contenuti nella lista VAR
[2, '46', 80, 2, 10, 'Lista46']
>>> VAR.remove(2) # Rimuove il primo numero 2 contenuto nella lista VAR
>>> print(VAR) # Visualizza tutti gli elementi contenuti nella lista VAR
['46', 80, 2, 10, 'Lista46']
>>> del VAR [1] # Toglie dalla lista VAR il secondo elemento
>>> print(VAR) # Visualizza tutti gli elementi contenuti nella lista VAR
['46', 2, 10, 'Lista46']
>>>

2) La TUPLA è un tipo di variabile contenente singoli elementi racchiusi fra parentesi tonde e separati gli uni dagli altri da una virgola, ciascuno dei quali può essere richiamato, ma non può essere modificato.
Ciascun singolo elemento della tupla può essere richiamato scrivendo il nome della variabile tipo tupla seguita da un numero [racchiuso fra parentesi quadre] che indica la posizione dell’elemento della tupla che si intende richiamare.
Seguono esempi di sintassi seguiti da commento esplicativo relativo all’effetto del comando stesso.
VAR = (6, "Tupla", "44", 78, 2) # Imposta una variabile VAR di 5 elementi
type(VAR) # Verifica la classe della variabile VAR
print(VAR) # Visualizza tutti gli elementi contenuti nella tupla VAR
print(VAR[1]) # Visualizza il secondo elemento da sinistra della tupla VAR
print(VAR[-1]) # Visualizza il primo elemento da destra della tupla VAR

Segue un esempio di output da SHELL IDLE
>>> VAR = (6, "Tupla", "44", 78, 2) # Imposta una variabile VAR di 5 elementi
>>> type(VAR) # Verifica la classe della variabile VAR
< class 'tuple'>
>>> print(VAR) # Visualizza tutti gli elementi contenuti nella tupla VAR
(6, 'Tupla', '44', 78, 2)
>>> print(VAR[1]) # Visualizza il secondo elemento da sinistra della tupla VAR
Tupla
>>> print(VAR[-1]) # Visualizza il primo elemento da destra della tupla VAR
2
>>>

3) Il SET è un tipo di variabile contenente singoli elementi racchiusi fra parentesi graffe e separati gli uni dagli altri da una virgola, ciascuno dei quali può essere successivamente cancellato.
È altresì possibile aggiungere un nuovo elemento del set; il tentativo di aggiungere un elemento già presente, non da luogo ad alcun errore, ma non viene eseguito.
Per sua natura, gli elementi contenuti in un SET non sono indicizzati, quindi, per visualizzare un singolo elemento, occorre prima trasformare l’intero SET in una LISTA.
Seguono esempi di sintassi seguiti da commento esplicativo relativo all’effetto del comando stesso.

VAR = {9, "Set", "47", 81, 5} # Imposta un set di 5 elementi
type(VAR) # Verifica la classe della variabile VAR
print(VAR) # Visualizza tutti gli elementi contenuti in VAR
VAR.add("Mare") # Aggiunge un sesto elemento al set VAR
print(VAR) # Visualizza tutti gli elementi contenuti in VAR
VAR.remove(5) # Rimuove il numero 5 contenuto nel set VAR
print(VAR) # Visualizza tutti gli elementi contenuti nel set VAR
print(VAR[1]) # Tenta di visualizzare il secondo elemento da sinistra del set VAR
VAR = list(VAR) # converte il set VAR nella lista VAR
type(VAR)# Verifica la classe della variabile VAR
print(VAR) # Visualizza tutti gli elementi contenuti in VAR
print(VAR[1]) # Visualizza il secondo elemento da sinistra della lista VAR

Segue un esempio di output da SHELL IDLE
>>> VAR = {9, "Set", "47", 81, 5} # Imposta un set di 5 elementi
>>> type(VAR) # Verifica la classe della variabile VAR
< class 'set'>
>>> print(VAR) # Visualizza tutti gli elementi contenuti in VAR
{'47', 81, 5, 9, 'Set'}
>>> VAR.add("Mare") # Aggiunge un sesto elemento al set VAR
>>> print(VAR) # Visualizza tutti gli elementi contenuti in VAR
{'47', 81, 5, 9, 'Mare', 'Set'}
>>> VAR.remove(5) # Rimuove il numero 5 contenuto nel set VAR
>>> print(VAR) # Visualizza tutti gli elementi contenuti nel set VAR
{'47', 81, 9, 'Mare', 'Set'}
>>> print(VAR[1]) # Tenta di visualizzare il secondo elemento da sinistra del set VAR
Traceback (most recent call last):
File "", line 1, in
print(VAR[1]) # Tenta di visualizzare il secondo elemento da sinistra del set VAR
TypeError: 'set' object is not subscriptable
>>> VAR = list(VAR) # converte il set VAR nella lista VAR
>>> type(VAR)# Verifica la classe della variabile VAR
< class 'list'>
>>> print(VAR) # Visualizza tutti gli elementi contenuti in VAR
['47', 81, 9, 'Mare', 'Set']
>>> print(VAR[1]) # Visualizza il secondo elemento da sinistra della lista VAR
81
>>>

4) Anche il FROZENSET è un tipo di variabile contenente singoli elementi racchiusi fra parentesi graffe e separati gli uni dagli altri da una virgola, ciascuno dei quali può essere successivamente cancellato.
Per sua natura, gli elementi contenuti in un FROZENSET non sono indicizzati, quindi, per visualizzare un singolo elemento, occorre prima trasformare l’intero FROZENSET in una LISTA o in una TUPLA.
A differenza del SET, il FROZENSET è immutabile, quindi non è possibile aggiungere un nuovo elemento, né togliere o sostituire un elemento preesistente.
Seguono esempi di sintassi seguiti da commento esplicativo relativo all’effetto del comando stesso.

VAR = frozenset({9, "Set", "47", 81, 5}) # Imposta un FROZENSET di 5 elementi
type(VAR) # Verifica la classe della variabile VAR
print(VAR) # Visualizza tutti gli elementi contenuti in VAR
VAR.add("Mare") # Tenta di aggiungere un sesto elemento al set VAR
VAR.remove(5) # Tenta di rimuovere il numero 5 contenuto nel set VAR
print(VAR[1]) # Tenta di visualizzare il secondo elemento da sinistra del set VAR
print(VAR) # Visualizza tutti gli elementi contenuti nel set VAR
VAR = list(VAR) # converte il FROZENSET VAR nella lista VAR
type(VAR)# Verifica la classe della variabile VAR
print(VAR) # Visualizza tutti gli elementi contenuti in VAR
print(VAR[1]) # Visualizza il secondo elemento da sinistra della lista VAR

Segue un esempio di output da SHELL IDLE
>>> VAR = frozenset({9, "Set", "47", 81, 5}) # Imposta un FROZENSET di 5 elementi
>>> type(VAR) # Verifica la classe della variabile VAR

>>> print(VAR) # Visualizza tutti gli elementi contenuti in VAR
frozenset({81, 5, 'Set', 9, '47'})
>>> VAR.add("Mare") # Tenta di aggiungere un sesto elemento al set VAR
Traceback (most recent call last):
File "", line 1, in
VAR.add("Mare") # Tenta di aggiungere un sesto elemento al set VAR
AttributeError: 'frozenset' object has no attribute 'add'
>>> VAR.remove(5) # Tenta di rimuovere il numero 5 contenuto nel set VAR
Traceback (most recent call last):
File "", line 1, in
VAR.remove(5) # Tenta di rimuovere il numero 5 contenuto nel set VAR
AttributeError: 'frozenset' object has no attribute 'remove'
>>> print(VAR[1]) # Tenta di visualizzare il secondo elemento da sinistra del set VAR
Traceback (most recent call last):
File "", line 1, in
print(VAR[1]) # Tenta di visualizzare il secondo elemento da sinistra del set VAR
TypeError: 'frozenset' object is not subscriptable
>>> print(VAR) # Visualizza tutti gli elementi contenuti nel set VAR
frozenset({81, 5, 'Set', 9, '47'})
>>> VAR = list(VAR) # converte il FROZENSET VAR nella lista VAR
>>> type(VAR)# Verifica la classe della variabile VAR

>>> print(VAR) # Visualizza tutti gli elementi contenuti in VAR
[81, 5, 'Set', 9, '47']
>>> print(VAR[1]) # Visualizza il secondo elemento da sinistra della lista VAR
5
>>>

5) Il DIZIONARIO è un tipo di variabile contenente coppie di elementi racchiusi fra parentesi graffe. Il primo elemento di ciascuna coppia è detto “CHIAVE”, mentre il secondo elemento è detto “VALORE”. Ogni singola “CHIAVE” è separata dal corrispondente “VALORE” tramite il carattere duepunti {:}, ed ogni singola coppia è separata con una virgola {,} sia dalla coppia che la precede, sia dalla coppia che la segue. Come avviene per ciascun elemento di una LISTA, ciascuna coppia di elementi di un DIZIONARIO può essere: richiamata, sostituita, cancellata, aggiunta. Nei dizionari, ogni singola “CHIAVE” assolve la medesima funzione assolta dall’ “INDICE” in LISTE, TUPLE, e SET, mentre ogni singolo “VALORE” ha la medesima funzione che ha un “VALORE” in LISTE, TUPLE, e SET.
Qualora di desideri convertire una variabile-dizionario in una variabile-lista, è possibile sia creare una LISTA contenente solo le CHIAVI, sia creare una LISTA contenente solo i VALORI, sia creare una LISTA contenente CHIAVI e VALORI.
VAR = {"CHIAVE":"Valore", 1:"Primo", "SECONDO":2, 9:20, "NUMERI":[2, 3, 5, 7]}

VAR = {"CHIAVE":"Valore", 1:"Primo", "SECONDO":2, 9:20, "NUMERI":[2, 3, 5, 7]} # Imposta la variabile-dizionario VAR di 5 elementi
type(VAR) # Verifica la classe della variabile-dizionario VAR
print(VAR) # Visualizza tutti gli elementi contenuti nella variabile-dizionario VAR
print(VAR[1]) # Visualizza il valore della variabile-dizionario VAR avente chiave 1
print(VAR["SECONDO"]) # Visualizza il valore della variabile-dizionario VAR avente chiave "SECONDO"
A = VAR["SECONDO"] + VAR[9]; VAR["key"] = A # Calcola un sesto elemento e lo aggiunge alla variabile-dizionario VAR.
print(VAR) # Visualizza tutti gli elementi contenuti nella variabile-dizionario VAR
"SETTE" in VAR # Controlla se l’indice "SETTE" è presente nella variabile-dizionario VAR
A = VAR[1] + VAR["CHIAVE"]; VAR["SETTE"] = A # Crea un settimo elemento e lo aggiunge alla variabile-dizionario VAR
"SETTE" in VAR # Controlla se l’indice "SETTE" è presente nella variabile-dizionario VAR
print(VAR) # Visualizza tutti gli elementi contenuti nella variabile-dizionario VAR
VAR["CHIAVE"] = "Nuovo valore" # Sostituisce il valore della variabile-dizionario VAR avente chiave "CHIAVE" con "Nuovo valore".
print(VAR) # Visualizza tutti gli elementi contenuti nella variabile-dizionario VAR
del VAR["key"] # Toglie dalla variabile-dizionario VAR il valore corrispondente alla chiave "key"
print(VAR) # Visualizza tutti gli elementi contenuti nella variabile-dizionario VAR
VAR.keys() # Visualizza tutte le chiavi contenute nella variabile-dizionario VAR
VAR.values() # Visualizza tutti i valori contenuti nella variabile-dizionario VAR
VAR.items() # Visualizza chiavi e valori contenuti nella variabile-dizionario VAR come fossero contenuti in una lista

ITEM_VAR = VAR.items() # Crea la variabile ITEM_VAR tipo ITEM contenente chiavi e valori contenuti nella variabile-dizionario VAR
print(ITEM_VAR) # Visualizza tutti gli elementi contenuti nella variabile-item LISTAVAR
type(ITEM_VAR) # Verifica la classe della variabile-item LISTAVAR

Esempi di output
>>> VAR = {"CHIAVE":"Valore", 1:"Primo", "SECONDO":2, 9:20, "NUMERI":[2, 3, 5, 7]} # Imposta la variabile-dizionario VAR di 5 elementi
>>> type(VAR) # Verifica la classe della variabile-dizionario VAR
< class 'dict'>
>>> print(VAR) # Visualizza tutti gli elementi contenuti nella variabile-dizionario VAR
{'CHIAVE': 'Valore', 1: 'Primo', 'SECONDO': 2, 9: 20, 'NUMERI': [2, 3, 5, 7]}
>>> print(VAR[1]) # Visualizza il valore della variabile-dizionario VAR avente chiave 1
Primo
>>> print(VAR["SECONDO"]) # Visualizza il valore della variabile-dizionario VAR avente chiave "SECONDO"
2
>>> A = VAR["SECONDO"] + VAR[9]; VAR["key"] = A # Calcola un sesto elemento e lo aggiunge alla variabile-dizionario VAR.
>>> print(VAR) # Visualizza tutti gli elementi contenuti nella variabile-dizionario VAR
{'CHIAVE': 'Valore', 1: 'Primo', 'SECONDO': 2, 9: 20, 'NUMERI': [2, 3, 5, 7], 'key': 22}
>>> "SETTE" in VAR # Controlla se l’indice "SETTE" è presente nella variabile-dizionario VAR
False
>>> A = VAR[1] + VAR["CHIAVE"]; VAR["SETTE"] = A # Crea un settimo elemento e lo aggiunge alla variabile-dizionario VAR
>>> "SETTE" in VAR # Controlla se l’indice "SETTE" è presente nella variabile-dizionario VAR
True
>>> print(VAR) # Visualizza tutti gli elementi contenuti nella variabile-dizionario VAR
{'CHIAVE': 'Valore', 1: 'Primo', 'SECONDO': 2, 9: 20, 'NUMERI': [2, 3, 5, 7], 'key': 22, 'SETTE': 'PrimoValore'}
>>> VAR["CHIAVE"] = "Nuovo valore" # Sostituisce il valore della variabile-dizionario VAR avente chiave "CHIAVE" con "Nuovo valore".
>>> print(VAR) # Visualizza tutti gli elementi contenuti nella variabile-dizionario VAR
{'CHIAVE': 'Nuovo valore', 1: 'Primo', 'SECONDO': 2, 9: 20, 'NUMERI': [2, 3, 5, 7], 'key': 22, 'SETTE': 'PrimoValore'}
>>> del VAR["key"] # Toglie dalla variabile-dizionario VAR il valore corrispondente alla chiave "key"
>>> print(VAR) # Visualizza tutti gli elementi contenuti nella variabile-dizionario VAR
{'CHIAVE': 'Nuovo valore', 1: 'Primo', 'SECONDO': 2, 9: 20, 'NUMERI': [2, 3, 5, 7], 'SETTE': 'PrimoValore'}
>>> VAR.keys() # Visualizza tutte le chiavi contenute nella variabile-dizionario VAR
dict_keys(['CHIAVE', 1, 'SECONDO', 9, 'NUMERI', 'SETTE'])
>>> VAR.values() # Visualizza tutti i valori contenuti nella variabile-dizionario VAR
dict_values(['Nuovo valore', 'Primo', 2, 20, [2, 3, 5, 7], 'PrimoValore'])
>>> VAR.items() # Visualizza chiavi e valori contenuti nella variabile-dizionario VAR come fossero contenuti in una lista
dict_items([('CHIAVE', 'Nuovo valore'), (1, 'Primo'), ('SECONDO', 2), (9, 20), ('NUMERI', [2, 3, 5, 7]), ('SETTE', 'PrimoValore')])
>>> ITEM_VAR = VAR.items() # Crea la variabile ITEM_VAR tipo ITEM contenente chiavi e valori contenuti nella variabile-dizionario VAR
>>> print(ITEM_VAR) # Visualizza tutti gli elementi contenuti nella variabile-item LISTAVAR
dict_items([('CHIAVE', 'Nuovo valore'), (1, 'Primo'), ('SECONDO', 2), (9, 20), ('NUMERI', [2, 3, 5, 7]), ('SETTE', 'PrimoValore')])
>>> type(ITEM_VAR) # Verifica la classe della variabile-item LISTAVAR
< class 'dict_items' >
>>>