Estratto del documento

Strutture dati in Python e JES: liste, tuple, vettori e matrici

Fondamenti di Informatica · Python / Jython (JES)

Questi appunti raccolgono le strutture dati che si usano nel corso di Fondamenti di Informatica con JES (Jython

Environment for Students). JES esegue Jython, cioè Python 2.7 sulla Java Virtual Machine: la sintassi è quella di Python,

con qualche differenza rispetto a Python 3 che viene segnalata dove serve. Tutti gli esempi sono stati eseguiti.

1. Che cos'è una sequenza

Una struttura dati è un modo di raggruppare più valori sotto un unico nome. In Python le strutture più usate sono le

sequenze: collezioni ordinate di elementi, in cui ogni elemento occupa una posizione precisa. Le sequenze che servono

nel corso sono tre: le stringhe, le liste e le tuple.

Ogni posizione è identificata da un indice intero. Il primo elemento ha indice 0, l'ultimo ha indice , dove

len(s) - 1

restituisce il numero di elementi. Python ammette anche indici negativi, che contano dalla fine: è l'ultimo

len s[-1]

elemento, il penultimo.

s[-2]

>>> nomi = ["Anna", "Bruno", "Carla", "Dario"]

>>> len(nomi)

4

>>> nomi[0]

'Anna'

>>> nomi[-1]

'Dario'

Usare un indice che non esiste (qui ) provoca l'errore . È l'errore

nomi[4] IndexError: list index out of range

più comune quando si lavora con le sequenze e quasi sempre nasce dal dimenticare che si parte da 0.

Slicing

Con la notazione si estrae una fetta (slice): gli elementi dall'indice incluso all'indice escluso. Se si omette

s[i:j] i j

si parte dall'inizio, se si omette si arriva alla fine. Un terzo numero, , indica di quanto avanzare.

i j s[i:j:passo]

>>> v = [10, 20, 30, 40, 50, 60]

>>> v[1:4]

[20, 30, 40]

>>> v[:2]

[10, 20]

>>> v[3:]

[40, 50, 60]

>>> v[::2]

[10, 30, 50]

>>> v[::-1]

[60, 50, 40, 30, 20, 10]

Lo slicing crea sempre una nuova sequenza e non modifica quella di partenza. è quindi un modo rapido per

v[:]

ottenere una copia di una lista.

2. Le stringhe come sequenze

Una stringa è una sequenza di caratteri, quindi indici, e slicing funzionano come sopra: se ,

len parola = "python"

allora vale e vale . La differenza fondamentale è che le stringhe sono

parola[0] 'p' parola[1:4] 'yth'

immutabili: produce . Per "modificarla" si costruisce una nuova stringa, per esempio

parola[0] = "J" TypeError

, che vale .

"J" + parola[1:] 'Jython' 1

3. Le liste

La lista è la struttura più flessibile: una sequenza mutabile di elementi, anche di tipo diverso, scritta tra parentesi

quadre e separata da virgole. La lista vuota è .

[]

Creare e modificare

A differenza delle stringhe, gli elementi di una lista si possono sostituire direttamente con un assegn

Anteprima
Vedrai una selezione di 3 pagine su 6
Strutture dati Pag. 1 Strutture dati Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
Strutture dati Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher davidescri di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Roma Tor Vergata o del prof Regoli Massimo.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community