Python使用嵌套字典实现长度单位换算时键值无法配对输出问题
修复方案
核心错误点
- 遍历字典同时获取键、值时,必须调用字典的
.items()方法,你之前省略了该方法直接遍历,才会触发值太多无法解包的报错 - 你写了两个独立的for循环分别打印换算值和单位,才会出现数值全部输出完成后再统一输出单位的问题,合并为同一个循环即可配对展示
修复后的代码片段
只需要替换你原有代码的最后一段if判断逻辑即可:
if length_key in length_conversion_factors: # 调用items()同时拿到目标单位名和对应换算系数 for target_unit, convert_factor in length_conversion_factors[length_key].items(): conv_value = len_value * convert_factor # 直接在单次循环里拼接数值和单位输出 print(f"{conv_value} {target_unit}")
额外提示
你当前的length_conversion_factors字典只配置了千米、米、厘米三个原单位的换算规则,如果要支持选单里的英寸、英尺、英里、海里等其他单位,需要补全对应单位的换算系数条目,否则选到这些未配置的单位时不会输出换算结果。
内容的提问来源于stack exchange,提问作者Chris McGonigle
相关产品推荐
相关产品推荐

