0

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

{'A': 0.00025037208557341116}

{'A': 0.000250372085573415}

谁能建议我如何做到这一点?我的字典很大(超过 8000 个条目),我需要多次访问这些值来进行其他计算。

4

1 回答 1

0

dict在迭代生成第二个密钥时测试每个密钥。从您要比较的字典中查找键/值对很便宜(线性成本),并在找到它们时将值四舍五入。

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

要在设定的容差范围内测试两个浮点数是否相同,请参阅在 Python 中比较浮点数是否相等的最佳方法是什么?.

于 2012-11-24T12:54:32.923 回答