P.15 Ricerca in una lista

Immaginiamo di avere una lista di numeri e di voler verificare se all’interno della lista è presente un particolare numero. In questo caso ci servirà solo sapere se il numero desiderato è presente oppure no.

Percorriamo la lista utilizzando un ciclo for. Ad ogni iterazione verifichiamo se il numero corrente, memorizzato nella variabile el ha lo stesso valore del numero che stiamo cercando (variabile chiave). Nel caso i valori coincidano, stampiamo un messaggio:

numeri = [12,23,43,5,6,7,34,5,46,76,9]
#numero da cercare
chiave = 7

for el in numeri:
    if (chiave == el):
        print(f"trovato {chiave}")

Listato 1.24 – Prima versione del programma di ricerca.

Proviamo ad eseguire il codice. Nel ciclo abbiamo inserito una print() che stampa i numeri esaminati e quindi nella console dovremmo poter osservare tutti i numeri della lista:

12, 23, 43, 5, 6, 7, trovato 7
34, 5, 46, 76, 9, 

Per come abbiamo impostato il codice, anche una volta che è stato trovato il numero desiderato, l’esecuzione prosegue inutilmente. Modifichiamo il codice per evitare che la lista sia percorsa per intero e inseriamo l’istruzione break:

numeri = [12,23,43,5,6,7,34,5,46,76,9]
#numero da cercare
chiave = 7

for el in numeri:
    print(el, end=', ')
    if (chiave == el):
        print(f"trovato {chiave}")
        print("stop")
        break

Listato 1.25 – Cerca un elemento nella lista.

Ora il programma si ferma subito dopo aver trovato il numero desiderato, risparmiando cicli macchina.

12, 23, 43, 5, 6, 7, trovato 7