如何在python中基于舍入值比较两个dicts?

时间:2012-11-24 12:38:54

标签: python-3.x

我需要检查两个dicts是否相等。如果舍入到小数点后6位的值相等,则程序必须说它们是相等的。对于例如以下两个dicts相等

{'A': 0.00025037208557341116}

{'A': 0.000250372085573415}

有谁能建议我怎么做?我的词典很大(超过8000个条目),我需要多次访问这些值才能进行其他计算。

1 个答案:

答案 0 :(得分:0)

在迭代生成第二个dict时测试每个键。从正在比较的字典中查找键/值对是便宜的(线性成本),并在找到它们时对值进行舍入。

您实际上是在执行设置差异来测试键的相等性,这需要至少在最小的集合上进行完整循环。如果您已经需要循环生成其中一个词,那么您将获得优势,因为它将为您提供最快确定 中的的最短路径。

要测试两个浮点数在设定容差范围内是否相同,请参阅What is the best way to compare floats for almost-equality in Python?