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