Skip to main content
 首页 » 编程设计

python之排序python字典

2025年05月04日13lidabo

我有一本字典,其中的值是 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