Python permette di accedere alle strutture dati sia a livello di singolo elemento
1 2 3 4 5 |
x1=lista1[p1] # accesso in lettura all'elemento alla posizione ... lista2[p2]=x2 # accesso in scrittura all'elemento alla posizione ... lista1[p1]=lista2[p2] |
che a livello di sequenze, fette di elementi
1 2 3 4 5 |
L1=lista1[p1:q1:r1] # accesso in lettura a una certa fetta lista2[p2:q2:r2]=L2 # accesso in scrittura a una certa fetta lista1[p1:q1:r1]=lista2[p2:q2:r2] # ERRORI MOLTO PROBABILI... |
La sintassi, all’interno delle parentesi quadre, รจ piuttosto complessa
- Possono comparire 0/1/2 segni ‘:‘
- Possono comparire 0/1/2 indici numerici
- Gli indici hanno la stessa funzione degli argomenti
START
,STOP
,STEP
della funzione range() - Se un indice manca allora ha un valore prefissato
START = 0
STOP = len(lista)
STEP = +1
Senza indici
L=lista[:] | Dall’inizio fino alla fine, una copia di tutta la lista |
Con un solo indice
La presenza, o mancanza dei due punti, cambia il significato dell’indice
x=lista[p] | L’elemento alla posizione p |
L=lista[START : ] | Un numero e i due punti. A partire dalla posizione START fino alla fine |
L=lista[ : STOP] | I due punti e un numero. Dall’inizio fino alla posizione STOP esclusa (fino all’indice STOP-1) |
L=lista[ : : STEP] | I due punti doppi e un numero… Dall’inizio fino alla fine con passo STEP |
Con due indici
L=lista[START : STOP] | A partire da START fino a STOP escluso (fino a STOP-1) |
L=lista[START : : STEP] | A partire da START fino alla fine, con passo STEP |
L=lista[ : STOP : STEP] | A partire dall’inizio fino a STOP escluso, con passo STEP |
Con indici di posizione negativi
Un indice negativo specifica la posizione contando a partire da destra e verso sinistra.
Lo scorrimento rimane da sinistra verso destra.
x=lista[-p] | L’elemento alla posizione -p (contando dalla fine) |
L=lista[-START : ] | A partire dalla posizione –START fino alla fine |
L=lista[ : -STOP] | Dall’inizio fino alla posizione –STOP esclusa |
L=lista[-START : -STOP] | A partire da –START fino a –STOP escluso |
Con passo negativo
Il passo negativo indica che lo scorrimento avviene da destra verso sinistra.
I valori predefiniti diventano
START = len(lista)
STOP = -1
Quindi START > STOP
L=lista[ : : -1] | Dall’ultimo al primo, una copia della lista rovesciata |
L=lista[ : : -STEP] | Dall’ultimo al primo, con passo –STEP |
L=lista[START : : -STEP] | Dalla posizione START al primo, con passo –STEP |
L=lista[-START : : -STEP] | Dalla posizione –START al primo, con passo –STEP |
L=lista[ : STOP : -STEP] | Dall’ultimo fino alla posizione STOP esclusa, con passo –STEP |
L=lista[ : -STOP : -STEP] | Dall’ultimo fino alla posizione –STOP esclusa, con passo –STEP |
L=lista[START : STOP : -STEP] | A partire da START fino a STOP escluso, con passo –STEP |
L=lista[-START : STOP : -STEP] | A partire da –START fino a STOP escluso, con passo –STEP |
L=lista[START : -STOP : -STEP] | A partire da START fino a –STOP escluso, con passo –STEP |
L=lista[-START : -STOP : -STEP] | A partire da –START fino a –STOP escluso, con passo –STEP |