# 1001.py def genitore (x,y): return padre(x,y) or madre(x,y) def nonno (x,z): return any(padre(x,y) and genitore(y,z) for y in Mondo) def madre (x,y): return x=='anna' and y in ['piero','maria'] \ or x=='lisa' and y=='giulia' or x=='maria' and y=='elena' \ or x=='monica' and y=='alfonso' def padre (x,y): return (x=='giovanni' and y in ['maria','piero'] or x=='piero' and y=='giulia' or x=='federico' and y=='alfonso' or x=='alfonso' and y=='elena') def cercanonni (a): print (list(filter(lambda x: nonno(x,a),Mondo))) def cercaunnonno (a): for x in Mondo: if nonno(x,a): print(x); return print('Non trovato.') Mondo=['alfonso','anna','elena','federico','giovanni', 'giulia','lisa','maria','monica','piero'] cercaunnonno('elena') # federico cercanonni('elena') # ['federico', 'giovanni']