我有这本字典
{'jackie chan': ('rush hour', 'rush hour 2'),
'crish tucker': ('rush hour', 'rush hour 2')}
Run Code Online (Sandbox Code Playgroud)
我想要逆字典
{'rush hour': ('jackie chan', 'crish tucker'),
'rush hour 2': ('jackie chan', 'crish tucker')}
Run Code Online (Sandbox Code Playgroud)
我已经将函数反转但它看起来不像第二个字典
def invert_actor_dict(actor_dict):
movie_dict = {}
for key,value in actor_dict.iteritems():
for actor in value:
if actor in movie_dict:
movie_dict[actor].append(key)
else:
movie_dict[actor] = (key)
return movie_dict
Run Code Online (Sandbox Code Playgroud)
您可以轻松地执行此操作collections.defaultdict:
def invert_dict(d):
inverted_dict = collections.defaultdict(set)
for actor, movies in d.iteritems():
for movie in movies:
inverted_dict.add(actor)
return inverted_dict
Run Code Online (Sandbox Code Playgroud)
def invert_actor_dict(actor_dict):
movie_dict = {}
for actor,movies in actor_dict.iteritems():
for movie in movies:
if not movie_dict.has(movie):
movie_dict[movie]=[]
movie_dict[movie].append(actor)
return movie_dict
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
869 次 |
| 最近记录: |