请考虑以下代码:
0.1 + 0.2 == 0.3 -> false
Run Code Online (Sandbox Code Playgroud)
0.1 + 0.2 -> 0.30000000000000004
Run Code Online (Sandbox Code Playgroud)
为什么会出现这些不准确之处?
我有两个词典,但为了简化,我将采用这两个:
>>> x = dict(a=1, b=2)
>>> y = dict(a=2, b=2)
Run Code Online (Sandbox Code Playgroud)
现在,我想比较每key, value对中是否x具有相同的对应值y.所以我写了这个:
>>> for x_values, y_values in zip(x.iteritems(), y.iteritems()):
if x_values == y_values:
print 'Ok', x_values, y_values
else:
print 'Not', x_values, y_values
Run Code Online (Sandbox Code Playgroud)
它是有效的,因为tuple返回然后比较相等.
我的问题:
它是否正确?有更好的方法吗?更好的不是速度,我说的是代码优雅.
更新:我忘了提到我必须检查有多少key, value对是相等的.