[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