>>> def find_in_list(lst, key):
... assert isinstance(lst, list)
... if key in lst:
... return key
...
>>> def find_in_dict(dct, key):
... assert isinstance(dct, dict)
... if key in dct:
... return [key] + dct[key]
... else:
... for i in dct.values():
... out = find(i, key)
... if out is not None:
... return out
...
>>> def find(cont, key):
... if isinstance(cont, list):
... return find_in_list(cont, key)
... elif isinstance(cont, dict):
... return find_in_dict(cont, key)
...
>>>
>>> info = [u'no', u'информацьион']
>>> address = [u'Москва', u'Верхние поля', u'18а']
>>> phones = ['ph1', 'ph2']
>>> vasya = {u'информация':info,
... u'адрес':address,
... u'телефоны':phones}
>>>
>>> prot = []
>>> base = [u'ground']
>>> part = [1, 2, 3]
>>> fedya = {u'протокол':prot,
... u'база':base,
... u'партия':part}
>>>
>>> mila = [u'abc', u'безнадега', u'точка ру']
>>> main_dict = {u'вася пупкин':vasya,
... u'федя негров':fedya,
... u'мила йовович':mila}
>>>
>>> find(main_dict, u'телефоны')
['телефоны', 'ph1', 'ph2']
>>>