
Il metodo index() delle stringhe in Python
Nel linguaggio Python il metodo index() ti permette di trovare la posizione della prima occorrenza di una sottostringa all'interno di una stringa più grande.
stringa.index(sottostringa, start, end)
Il metodo è applicato all'oggetto "stringa" e ha tre parametri
- La sottostringa che vuoi cercare nella stringa più grande
- La posizione iniziale (start) nell'indice da cui iniziare a cercare all'interno della stringa. Se non lo specifichi, la ricerca inizia dall'inizio della stringa.
- La posizione finale (end) nell'indice in cui terminare la ricerca all'interno della stringa. Se non lo specifichi, la ricerca termina alla fine della stringa.
Il metodo index puoi utilizzarlo su qualsiasi oggetto stringa in Python.
Il metodo index restituisce l'indice della posizione della sottostringa all'interno della stringa più grande.
Se la sottostringa non è presente all'interno della stringa, il metodo restituisce un errore.
Nota. La posizione iniziale e finale della ricerca sono parametri facoltativi. Se vuoi fare una ricerca completa in tutta la stringa, puoi anche non inserire questi due parametri.
Ti faccio un esempio pratico.
Digita questo codice
>>> stringa = "Il padre di mio padre"
>>> stringa.index('padre')
In questo caso il metodo stringa.index('padre') cerca la prima occorrenza della sottostringa 'padre' all'interno della stringa.
La trova nella posizione indice 3
3
In effetti la prima sottostringa "padre" comincia in posizione 3 nell'indice della stringa.
Nella stringa ci sono due sottostringhe "padre", il metodo index restituisce solo la posizione della prima occorrenza.
Nota. Ricorda che in Python gli indici iniziano da 0. Quindi il primo carattere della stringa ha indice 0, il secondo carattere ha indice 1, il terzo carattere ha indice 2, il quarto carattere ha indice 3, il quinto carattere ha indice 4, ecc.
Ora digita questo codice
>>> stringa = "Il padre di mio padre"
>>> stringa.index('padre', 5)
Il metodo stringa.index('padre',5) cerca la prima occorrenza della sottostringa 'padre' all'interno della stringa ma comincia la ricerca dalla posizione 5 dell'indice.
In questo caso la prima occorrenza della sottostringa "padre" si trova in posizione 16
16
Infine, digita questo codice
>>> stringa = "Il padre di mio padre"
>>> stringa.index('padre', 5, 15)
Il metodo stringa.index('padre',5,15) cerca la prima occorrenza della sottostringa 'padre' all'interno della stringa tra la posizione 5 e la posizione 15 dell'indice.
In questo caso non trova nessuna sottostringa 'padre'. Quindi restituisce un errore.
ValueError: substring not found
Ti ricordo che il metodo index restituisce solo la posizione della prima occorrenza della sottostringa all'interno della stringa più grande.
Se vuoi trovare tutte le occorrenze della sottostringa, devi utilizzare il metodo find() o un'espressione regex.
Per trovare solo la posizione dell'ultima occorrenza, invece, utilizza il metodo rindex().