Вы можете достичь этого, выполнив некоторый вложенный список и диктуя понимание. Я сделал это так:
orig_dict = {'yossi': ['harry potter', 'lilo and stich'], 'adam': ['harry potter', 'catch-22']}
def invert_dol(d):
inverted_dict = {movie: [name for name, list_ in d.items() if movie in list_] \
for k, v in d.items() for movie in v}
return inverted_dict
При вызове этой функции, передавая orig_dict
в качестве параметра, выдается следующее:
{'harry potter': ['yossi', 'adam'], 'lilo and stich': ['yossi'], 'catch-22': ['adam']}
(Обратите внимание, что нет "bob", потому что в orig_dict не было ни одного)