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

_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a