Lo slicing in Python permette di creare delle sotto – sequenze, quindi è un modo per ottenere più elementi contemporaneamente da una lista.

Abbiamo già utilizzato lo slicing nelle stringhe nel seguente tutorial: stringhe in python.

Lo slicing in Python – creare sottoliste

Facciamo subito un esempio per capire come funziona lo slicing.

anni = [2019,2018,2017,2016,2015,2014]

p = anni[2:] #parte dall'indice 2 fino alla fine della lista
q = anni[:2]
m = anni[2:4]
e = anni[3]
n = anni[-1]

print(p) 
print(q)
print(m)
print(e)
print(n)

Esaminiamo l’esempio proposto.

Con anni[2:] si crea una sottolista che parte dall’indice 2 e va fino alla fine della lista. Se non si specifica il secondo elemento infatti si intende fino alla fine.

Invece con anni[:2] si indicano solo i primi due elementi della lista. Se non specifico il primo elemento si intende dall’inizio.

Banner Pubblicitario

Migliora le tue capacità di programmazione Python seguendo i nostri corsi in diretta!

corsi Python

Dopo con anni[2:4] creiamo una sottolista che parte dall’indice 2 e arriva fino all’indice 4-1. Stamperà dunque solo 2 elementi.

Poi con anni[3] indichiamo solo l’elemento con indice 3 e cioè l’anno 2016.

Infine con anni[-1] si parte da destra e quindi si stampa solo l’anno 2014.

Dunque riepilogando avremo il seguente output:

[2017, 2016, 2015, 2014]
[2019, 2018]
[2017, 2016]
2016
2014

Attenzione se indichiamo ad esempio anni[6] si avrà il seguente errore IndexError: list index out of range, in quanto l’indice esce fuori dal range della lista.

Banner pubblicitario

Specificare un passo

Negli slice è possibile inoltre specificare un passo, ad esempio:

anni = [1,2,3,4,5,6,7,8,9,10]

p = anni[1:10:2]

print(p) 

Si stamperanno gli elementi dall’indice 1, quindi dal numero 2, fino all’indice 9 a passi di 2. Si avrà cioè il seguente output [2, 4, 6, 8, 10].

Per ottenere un ordine inverso posso indicare semplicemente lo step di -1, come da esempio sotto:

anni = [1,2,3,4,5,6,7,8,9,10]

p = anni[::-1]

print(p) 

Stamperà quindi [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]. Posso indicare anche lo step di -2 per stampare i numeri [10, 8, 6, 4, 2].

Questi sono solo alcuni esempi con l’uso dello slicing in Python, più avanti realizzeremo altre applicazioni.

Alcuni link utili

Corso in diretta su Python

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili

11 – Modulo math

12 – Operatori di confronto e booleani