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.
Migliora le tue capacità di programmazione Python seguendo i nostri corsi in diretta!
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.
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
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
8 – Errori in Python
9 – Script Python
10 – Scambio di variabili
11 – Modulo math
12 – Operatori di confronto e booleani