Dati Struttura in Python
Dati Struttura in Python
Tipi strutturati
miaLista
3
Sistemi informativi e DBMS
Liste
Dichiarazione e assegnamento: avviene per riferimento
#assegna a miaLista il riferimento alla seguente
lista di valori:
4
Sistemi informativi e DBMS
Liste
Accesso al singolo valore: per ottenere uno dei valori devo
specificare l’indice tra parentesi quadre dopo il nome della
variabile.
miaLista secondaLista
9
Riferimento a Liste
Le modifiche fatte agli elementi della lista eseguiti usando
uno dei nomi modificano la casella di memoria. Quindi tutti
i riferimenti vedranno la lista modificata.
Esempio:
>>> lista1 = [1,4]
>>> lista2 = lista1
>>> print(lista2)
[1, 4]
>>> lista1[1]=0 #Modifico l’elemento 1 usando lista1
>>> print(lista2) #La modifica la vede anche lista2
[1, 0]
10
Riferimento a Liste
Il riferimento si perde se eseguo un nuovo assegnamento
>>> lista1 = [1,4]
>>> lista2 = lista1
>>> lista1 = ['nuova lista',10]
>>> print(lista2)
[1,4]
>>> print(lista1)
['nuova lista',10]
Restituisce:
Calcolo lunghezza: len([2, 12, 3]) 3 #int
Appartenenza: 3 in [1, 2, 3] True #bool
12
Sistemi informativi e DBMS
Operazioni con Liste
Conversione a lista:
La funzione di built-in list() converte un iterabile in una
lista, separando i suoi elementi.
inLista = list('ciao')
['c', 'i', 'a', 'o']
inLista = list(range(0,3))
[0,1,2]
inLista = list(fileApertoInLettura)
13
Sistemi informativi e DBMS
Operazioni con Liste
Esempio di codice:
miaLista=[3,4,'ciao']
if 3 in miaLista:
miaLista = miaLista+['contiene 3']
print(len(miaLista))
for x in miaLista:
print(x)
14
Sistemi informativi e DBMS
Esercizio Liste e file
Aprire il file Leo.txt in modalità lettura, convertire il
contenuto in una lista e stampare a video il numero di
righe.
15
Sistemi informativi e DBMS
TUPLE
Le “tuple” sono un tipo di dato strutturato
indicizzato e immutabile. Una tupla è una
sequenza di dati separati da virgola.
Esempio:
>>> miaTupla='esempio',2,3.14159,True
>>> miaTupla
('esempio', 2, 3.14159, True)
>>> type(miaTupla)
<class 'tuple'>
>>>
16
Sistemi informativi e DBMS
TUPLE
È anche ammesso l’uso di parentesi tonde.
Esempio:
>>> miaTupla=('esempio',2,3.14159,True)
>>> miaTupla
('esempio', 2, 3.14159, True)
17
Sistemi informativi e DBMS
TUPLE
Si accede agli elementi delle tuple allo stesso
modo delle liste,
Esempio:
unValore = miaTupla[1]
primi2Elementi = miaTupla[:2]
ultimi2Elementi = miaTupla[-2:]
18
Sistemi informativi e DBMS
TUPLE
La tupla è “immutable”. Ciò significa che non
posso assegnare un nuovo valore ad un elemento
della tupla.
>>> miaTupla[1] = 239
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item
assignment
19
Sistemi informativi e DBMS
TUPLE
Se si ha necessità di manipolare i dati della tupla,
posso convertire la tupla in una lista e viceversa.
20
Sistemi informativi e DBMS
TUPLE e assegnamento
Le tuple e le liste permettono l’assegnamento multiplo.
Posso assegnare una lista di valori a un elenco di variabili.
Sintassi:
miaTupla = ('dato1', 'dato2')
var1, var2 = miaTupla
Equivale a:
var1= miaTupla[0]
var2= miaTupla[1]
>>> aDict.items()
dict_items([('key1', 'val1'), (12, 3.17), ((1, 3), 'ciao')])
>>> listaDaDizionario=list(aDict.items())
>>> listaDaDizionario
[('key1', 'val1'), (12, 3.17), ((1, 3), 'ciao')]
>>> type(listaDaDizionario[0])
<class 'tuple'>
24
Sistemi informativi e DBMS
Dizionari: accesso ai dati
Per accedere ai dati del dizionario si utilizza una sintassi
molto simile a quella delle tuple e delle liste. Ma tra
parentesi quadre al posto dell’indice si inserisce la chiave.
>>> aDict[12]
3.17
>>> aDict['key1']
'val1'
>>> aDict[(1,3)]
'ciao'
>>> aVar = aDict[(1,3)]
25
Sistemi informativi e DBMS
Dizionari: Modifica
Si può modificare il dato associato ad una chiave tramite un
assegnamento in cui si utilizza la chiave come indice.
>>> aDict[12] = 0
26
Sistemi informativi e DBMS
Dizionari: uso tipico
Abbiamo visto che non esistono regole sull’uso delle chiavi e
dei valori. È però preferibile che un dizionario sia definito da
chiavi dello stesso tipo e da valori tra essi coerenti.
Ad esempio:
cognomiAnno = {'Da Vinci':1452, 'Raffaello':1483, 'Della Francesca':1416}
27
Sistemi informativi e DBMS
IN - Tuple list e dict
La parola chiave in permette di sapere se un dato è
presente in una tupla, in una lista o tra le chiavi di un
dizionario.
Esempio:
>>> listaEsempio = [41, 5.0, 9.9]
>>> 5 in listaEsempio
True
>>> 10 in listaEsempio
False
28
Sistemi informativi e DBMS
Len - Tuple list string e dict
La funzione di built-in len prende come argomento un
tipo di dato strutturato e restituisce il numero di elementi.
Se come argomento ha una lista restituisce il numero di
caratteri.
Esempio:
>>> listaEsempio = [41, 5.0, 9.9]
>>> len(listaEsempio)
3
>>> len("ciao")
4
29
Sistemi informativi e DBMS
Numeri complessi
Questo tipo di dato memorizza una sola coppia di valori chiamati
real (parte reale) e imag (parte immaginaria).