如何计算Python中dictionary与list对应索引的非零差值
解决字典值与列表对应索引值的差值计算问题
问题说明
现有一个字典和一个列表,需要按索引位置用字典的对应值减去列表的值,仅保留差值不为零的结果。原代码只能判断两者是否完全相等,无法输出具体差值。
解决代码
dict1 = { "appel": 3962.00, "waspeen": 5018.75, "ananas": 3488.16 } number_fruit = [3962, 5018.74, 3488.17] # 按顺序配对字典键值对与列表元素 for (key, dict_val), list_val in zip(dict1.items(), number_fruit): diff = dict_val - list_val # 过滤差值为0的项,浮点数场景可根据精度调整判断条件 if diff != 0: print(f"{key} : {diff:.2f}")
代码说明
- 配对元素:使用
zip(dict1.items(), number_fruit)将字典的键值对与列表元素按插入顺序一一对应(Python 3.7+ 字典默认保留插入顺序)。 - 计算差值:对每一组配对元素计算
字典值 - 列表值的差值。 - 过滤输出:仅输出差值不为0的结果,用格式化字符串保证输出格式符合要求。
- 浮点数精度提示:如果遇到浮点数精度导致的极小差值(如
0.000000001),可改用abs(diff) > 1e-9来判断是否为非零值,避免精度误差干扰结果。
输出结果
waspeen : 0.01 ananas : -0.01
内容的提问来源于stack exchange,提问作者mightycode Newton
相关产品推荐
相关产品推荐

