我有这本字典
{'jackie chan': ('rush hour', 'rush hour 2'),
'crish tucker': ('rush hour', 'rush hour 2')}
我希望反字典是
^{pr2}$我已经得到了反函数,但它看起来不像第二个字典
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
你的代码有两个问题
您遇到的第一个问题是:
当你写
^{pr2}$movie_dict[actor] = (key)
时,你不是在创建元组——括号只是为了优先。要创建元组,必须在末尾添加逗号:不管怎样,这不会起到很好的效果,因为元组是不可变的。您应该使用列表:
或创建新元组:
我强烈建议你使用第一个选项。如果您真的需要使用元组,请在处理后将列表转换为元组。在
第二个问题是你所期望的
等于
如字典所示:
但事实并非如此:
你怎么解决?好吧,我设计的最简单的解决方案是在空格处拆分字符串,然后用一个空格重新连接它:
您可以使用^{} 轻松完成此操作:
相关问题 更多 >
编程相关推荐