On Sun, 28 May 2023 at 20:42, Gabriele Battaglia <iz4...@libero.it> wrote:
> 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',......]}

Con queste premesse io farei

    def foo(target, data):
        for k, v in data.items():
            if target in k or any(isinstance(item, str) and target in
item for item in v):
                return {k: v}

Ci sono dovuto ritornare perché all'inizio mi era sfuggito che "la
parola è compresa".


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

Rispondere a