相关疑难解决方法(0)

浮点数学是否破碎?

请考虑以下代码:

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)

为什么会出现这些不准确之处?

language-agnostic math floating-point floating-accuracy

2798
推荐指数
28
解决办法
28万
查看次数

比较Python中的两个词典

我有两个词典,但为了简化,我将采用这两个:

>>> 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对是相等的.

python comparison dictionary

222
推荐指数
16
解决办法
39万
查看次数