[Python] Ricerca in un dizionario.
Gabriele Battaglia
iz4apu a libero.it
Dom 28 Maggio 2023 20:41:46 CEST
Ciao e grazie in anticipo per il vostro tempo.
Vi sottopongo una semplice situazione.
Io so come risolverla, ma vi chiedo se c'è un modo più elegante del mio,
che mi pare bruttino.
Non vi propongo del codice, rimaniamo a livello di descrizione, poi se
non ci riesco, magari arrivamo anche a degli esempi di codice.
Ho un dizionario. Ci sono tutte le chiavi naturalmente, e i valori sono
lunghe liste che contengono diversi tipi di dati, soprattutto stringhe e
booleani.
Ho una chiave di ricerca, una stringa. Devo passarla ad una funzione e
questa mi deve tornare la prima chiave del dizionario se, la parola che
cerco è compresa nella chiave stessa o in uno degli elementi contenuti
nella lista di valori di quella chiave.
Esempio, se cerco "nonno", la funzione mi deve tornare sia
{'Nonno':[2,3,4,5.....]}
che anche
{'mamma':['figlia','nonno',......]}
Io faccio
for k,v in dizionario
se chiave in k allora trovato uguale vero
altrimenti trovato uguale falso
poi... se v è una lista allora
for indice in lista
se indice è testo allora
se chiave in indice trovato uguale vero
altrimenti trovato uguale falso
e indentato dentro al primo for
se trovato è vero, ritorna indice
Più o meno funziona ma, appunto, come vi dicevo, chissà se esiste un
modo più elegante e soprattutto conciso.
Se non vi ruba tempo, voi come fareste?
Non suggeritemi oggetti che non siano quelli citati, intendo, no
librerie esterne per la gestione di query e DB, devo lavorare con tipi
di dati base.
Grazie mille in anticipo.
Gabry.
--
Gabriele Battaglia (IZ4APU)
--... ...-- -.. . .. --.. ....- .- .--. ..- - ..- . .
Sent from my Giant Desktop PC
Maggiori informazioni sulla lista
Python