如何对Python合并字典frequencies中的数值进行四舍五入保留小数
错误原因
你代码报错的核心原因是frequencies字典中每个键对应的取值是长度为2的列表,而非单个数值,你直接把整个列表传入float()方法,自然会触发类型不匹配的错误。
实现逻辑说明
从你给出的期望输出示例倒推,原列表第二个元素是量级极小的频率值,需要先放大100000倍再四舍五入保留2位,才能得到示例中的2.15结果。如果你仅需要对原始频率值保留2位小数,直接删除代码中的放大倍率即可。
修改后代码
方案1:直接修改原字典
for key, value in frequencies.items(): # 列表第一个元素保持0不变,第二个元素按需求处理 frequencies[key] = [value[0], round(value[1] * 100000, 2)]
方案2:生成新字典,不改动原始数据
new_frequencies = { key: [val[0], round(val[1] * 100000, 2)] for key, val in frequencies.items() }
处理后取pear键的结果为{'pear': [0, 2.15]},和你给出的期望示例完全一致。
内容的提问来源于stack exchange,提问作者mxrdybxm
相关产品推荐
相关产品推荐

