python - 排序python字典

标签 python sorting dictionary

我有一本字典,其中的值是 float 。我正在尝试按值的降序对字典进行排序,并试图通过按升序对键进行排序来打破平局。

我实现了以下代码来实现这一点:

for key, value in sorted(dictionary.items(), key=lambda x: (-x[1], x[0])):

    print key, value

一些我的值(value)观似乎不合适。

2315 0.000232471518033

2823 0.000232414850716

3649 0.00023239634392

3695 0.00023239634392

3883 0.00023239634392

3479 0.00023239634392

3562 0.00023239634392

3613 0.00023239634392

根据上面的代码,以 3479 开头的行应该在以 3649 开头的行之前打印。

关于我对字典进行排序的方式可能有什么问题有什么想法吗? 跟 float 的精度有关系吗?

最佳答案

Has it got anything to do with the precision of floating point numbers?

是的。

>>> 0.0002323963439201
0.0002323963439201
>>> print 0.0002323963439201
0.00023239634392

关于python - 排序python字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33075857/

相关文章:

python map异常继续映射执行

Python:如何检查一个对象是否是一个模块?

对具有重复条目的列表进行计数排序奇数结果

android - 如何在 RealmResults 中按日期排序

perl - 使用映射函数的语法错误

Python - 用条件求和字典列表

java - 如何序列化 Java 对象以便它可以被 pickle (Python) 反序列化?

python - 如何根据字典值对列表进行排序

javascript - 用于排序的数据表自定义下拉列表

python - 使用具有多个参数的 map