Lista di elementi

Lista di elementi

Scrivi una funzione alla quale vengono passati due parametri, una lista di elementi e un elemento da ricercare al suo interno. In caso esistesse l’elemento, indicare l’indice della posizione in cui si trova all’interno della lista.

Analisi

Il problema richiede di identificare un elemento, impostato in fase iniziale o in lettura da tastiera, all’interno di una lista di elementi che andremo a riempire. In questo modo dovremmo essere in grado, non solo di dire se l’elemento è presente, attraverso l’output ( ‘TRUE/FALSE‘ ) ma anche di indicare la posizione dell’elemento nella lista.

Risoluzione

L’algoritmo può essere risolto attraverso l’utilizzo di un ciclo for che permette di analizzare ogni singolo elemento della lista. Questo ci permette di andare a confrontare l’elemento letto da tastiera con l’elemento della lista. Una delle variabili che andremo a prendere in considerazione è la lunghezza della lista di elementi che andrà a definire il range del for.

L’algoritmo deve prendere in considerazione anche il fatto che possano presentarsi più elementi ricercati e questo comporta un’analisi più approfondita del problema. Nel caso l’elemento da ricercare fosse presente più volte è opportuno creare una seconda lista dove verranno salvate le posizioni degli elementi così che, una volta terminato l’esecuzione del programma, il nostro output mostrerà:

Lista di elementi

Il miglior modo per capire come procedere è quello di creare un esempio che ci va a chiarire le idee.

Esempio

LISTA_ELEMENTI1025518
ELEMENTO_DA_CERCARE55
RISULTATO//TRUE – Posizione 2/

Implementazione algoritmo – Lista di elementi

def controllo_elemento(elemento, lista):
    lista_elementi_trovati = []
    elementi_trovati = 0
    for i in range (0, len(lista)):
        if int(lista[i]) == int(elemento):
            elementi_trovati = elementi_trovati + 1
            lista_elementi_trovati.append(i)

    if elementi_trovati >= 1 :
        print('TRUE', elementi_trovati, 'volte')
        print('Posizioni:', lista_elementi_trovati)
    else:
        print('FALSE')

def leggi_lista():
    lista = []
    n = int(input())
    while (n != 0):
        lista.append(n)
        n = int(input())

    return lista

print('leggi lista numeri - termina con 0')
lista = leggi_lista()

elemento = input('leggi numero da trovare')
controllo_elemento(elemento, lista)

Per testare il funzionamento dell’algoritmo consiglio di scaricare un editor di testo come Visual Studio Code o usufruire degli editor online gratis che permettono, senza scaricare alcun tipo di file, di realizzare algoritmi e testarli. Dopo averne valutati alcuni, ho deciso di affidarmi a Repl.it, semplice, affidabile e potente.

Leggi articolo   Il fattoriale ricorsivo

Buon Coding : )

Condividi il post

Condividi su facebook
Condividi su google
Condividi su twitter
Condividi su email
Condividi su whatsapp