如何通过Python函数实现字典多键同值的反向分组转换
代码问题说明
你原有代码存在以下几处错误:
- 遍历对象错误,循环了刚创建的空字典
new_dict,没有遍历传入的宾客兴趣字典interests - 变量名不匹配,循环中用
v接收兴趣值,判断时用了未定义的value变量 - 缩进错误,if分支下的逻辑没有正确缩进
- 赋值逻辑错误,新字典的value是人名列表,需要追加人名而不是直接覆盖赋值为单个名字
- 函数最后返回了空字典,没有返回构建好的
new_dict
修正后的完整代码
interests = { 'Sophia' : 'Computer', 'Anders' : 'Dancing', 'Mette' : 'Dancing', 'Hikari' : 'Computer', 'Riko' : 'Rowing', 'Troels' : 'Rowing', 'Sarah' : 'Rowing' } # 转换字典结构 def transform_dictionary(interests): new_dict = {} # 遍历传入的宾客兴趣字典,k是人名,v是对应的兴趣 for k, v in interests.items(): # 如果兴趣已经在新字典的key里,就把人名追加到对应的列表 if v in new_dict: new_dict[v].append(k) # 如果兴趣不存在,就新建key,value是存了当前人名的列表 else: new_dict[v] = [k] return new_dict print(transform_dictionary(interests))
运行结果
输出完全符合要求:{'Computer': ['Sophia', 'Hikari'], 'Dancing': ['Anders', 'Mette'], 'Rowing': ['Riko', 'Troels', 'Sarah']}
内容的提问来源于stack exchange,提问作者python_newbie
相关产品推荐
相关产品推荐

