Come cercare elementi nella lista python
Nel linguaggio python per trovare la posizione di un elemento in una lista utilizzo il metodo index.
nomelista.index(elemento)
Come parametro inserisco l'elemento che voglio trovare nella lista. Può trattarsi di una stringa o di un valore numerico.
Come funziona il metodo index
Il metodo index restituisce la posizione dell'elemento.
- Se ci sono più occorrenze, il metodo index restituisce soltanto la prima a partire da sinistra.
- Se non ci sono occorrenze, il metodo index restituisce un messaggio di errore da gestire come eccezione.
Un esempio pratico
In un programma ho la seguente lista
anno = [ 2010, 2011, 2012, 2013, 2014 ]
Per trovare la posizione del valore 2013
print(anno.index(2013))
L'istruzione visualizza sullo schermo la posizione dell'elemento nell'indice della lista
3
La posizione è la terza ( non la quarta ) perché l'indice della lista parte da zero, non da uno.
Quindi, il primo elemento è la posizione zero, il secondo la posizione uno, il terzo la posizione due e il quarto (2013) la posizione tre. E così via.
Un altro esempio di ricerca in una lista
Allo stesso modo posso cercare una stringa alfanumerica in una lista
Nella seguente lista ci sono alcuni nomi di città.
comuni = [ 'Roma', 'Napoli', 'Milano', 'Firenze' ]
Per trovare la posizione della stringa 'Milano' scrivo
print(comuni.index('Milano'))
L'istruzione visualizza la posizione dell'elemento nella stringa.
2
E se l'elemento non esiste nella lista?
Quando provo a cercare un elemento inesistente.
print(comuni.index('Bologna'))
L'istruzione restituisce un messaggio di errore:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 'Bologna' is not in list
Pertanto, quando si cerca qualcosa in una lista con il metodo index in python, è necessario programmare anche delle eccezioni per gestire i possibili errori della ricerca.
try:
print(comuni.index('Bologna'))
except:
print("elemento non trovato")
Quando cerco l'elemento inesistente, scatta l'eccezione e sullo schermo viene visualizzato il messaggio
elemento non trovato
In questo modo intercetto ed evito la visualizzazione dei messaggi di errore nel programma durante la ricerca.