def involved(courses, person): # result should be a dictionary of dictionaries: hexamester - a course/s
result = {}
for hexamester in courses:
List = []
for course in courses[hexamester]:
for key in courses[hexamester][course]:
teacher = courses[hexamester][course]['teacher']
if 'assistant' in courses[hexamester][course]:
assistant = courses[hexamester][course]['assistant']
if teacher == person or assistant == person:
if course not in List:
List.append(course)
else:
if teacher == person:
if course not in List:
List.append(course)
if List !=[]:
result[hexamester] = List
return result
ZGVmIGludm9sdmVkKGNvdXJzZXMsIHBlcnNvbik6ICMgcmVzdWx0IHNob3VsZCBiZSBhIGRpY3Rpb25hcnkgb2YgZGljdGlvbmFyaWVzOiBoZXhhbWVzdGVyIC0gYSBjb3Vyc2UvcwogICAgcmVzdWx0ID0ge30KICAgIAogICAgZm9yIGhleGFtZXN0ZXIgaW4gY291cnNlczoKICAgICAgICAKICAgICAgICBMaXN0ID0gW10KICAgICAgICAgICAKICAgICAgICBmb3IgY291cnNlIGluIGNvdXJzZXNbaGV4YW1lc3Rlcl06CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgZm9yIGtleSBpbiBjb3Vyc2VzW2hleGFtZXN0ZXJdW2NvdXJzZV06CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB0ZWFjaGVyID0gY291cnNlc1toZXhhbWVzdGVyXVtjb3Vyc2VdWyd0ZWFjaGVyJ10KCgkJaWYgJ2Fzc2lzdGFudCcgaW4gY291cnNlc1toZXhhbWVzdGVyXVtjb3Vyc2VdOgoJCQlhc3Npc3RhbnQgPSBjb3Vyc2VzW2hleGFtZXN0ZXJdW2NvdXJzZV1bJ2Fzc2lzdGFudCddCgkJCWlmIHRlYWNoZXIgPT0gcGVyc29uIG9yIGFzc2lzdGFudCA9PSBwZXJzb246CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCQlpZiBjb3Vyc2Ugbm90IGluIExpc3Q6CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAJCUxpc3QuYXBwZW5kKGNvdXJzZSkKCQllbHNlOgoJCQlpZiB0ZWFjaGVyID09IHBlcnNvbjoKCQkJCWlmIGNvdXJzZSBub3QgaW4gTGlzdDoKCQkJCQlMaXN0LmFwcGVuZChjb3Vyc2UpCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgaWYgTGlzdCAhPVtdOgoJCQlyZXN1bHRbaGV4YW1lc3Rlcl0gPSBMaXN0ICAgICAgICAgCiAgICByZXR1cm4gcmVzdWx0