Если вы используете Python 2.5 или выше, используйте класс defaultdict
из модуля collections
; defaultdict
автоматически создает значения при первом доступе к отсутствующему ключу, так что вы можете использовать это здесь для создания списков для dict2
, например:
from collections import defaultdict
dict1 = dict({'a':[1,2,3], 'b':[1,2,3,4], 'c':[1,2]})
dict2 = defaultdict(list)
for key, values in dict1.items():
for value in values:
# The list for dict2[value] is created automatically
dict2[value].append(key)
Обратите внимание, что списки в dict2 не будут иметь определенного порядка, так как словари не упорядочивают свои пары ключ-значение.
Если вы хотите получить обычный дикт в конце, который поднимет KeyError
для отсутствующих ключей, просто используйте dict2 = dict(dict2)
после вышеприведенного.