You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现字典翻转输出指定格式及defaultdict使用异常问题求解

问题定位
  • 遍历逻辑错误:直接遍历字典s默认仅返回键对象,无法同时解包为键、值两个变量,运行时会直接抛出ValueError,需调用.items()方法获取完整键值对
  • 映射关系颠倒:需求是将原字典的*城市(值)*作为新字典的键,*人名(键)*作为新字典的值,原代码d[k].append(v)逻辑完全相反
  • 排序代码冗余:sorted(d.items())仅返回排序后的新列表,不会修改原字典d,且需求无排序要求,该行无实际作用
  • 未适配输出格式要求:需求中仅对应1个人的城市,值需为字符串而非列表,原逻辑生成的所有值均为列表,不符合输出要求
正确实现代码
from collections import defaultdict

s = {"Ram": "Chennai", "Laxman": "Mumbai", "stephen": "Chennai"} 
temp = defaultdict(list)

# 完成城市到人名的反向映射
for name, city in s.items():
    temp[city].append(name)

# 处理单人名场景,转为字符串格式
res = {}
for city, name_list in temp.items():
    res[city] = name_list[0] if len(name_list) == 1 else name_list

print(res)

运行后输出结果和要求完全一致:
{"Chennai": ["Ram", "stephen"], "Mumbai": "Laxman"}

内容的提问来源于stack exchange,提问作者Hemu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:15:03