我无法找到我正在寻找的问题,并且不理解那些已经存在的问题。 我有一个像这样的二维字典:
{'alim2': {'running': 1470.0, 'swimming': 650.0, 'total': 2120.0, 'cycling': 0}, 'brownv4': {'running': 0, 'swimming': 0, 'total': 0, 'cycling': 0},
'mahroosm5': {'running': 1180.0, 'swimming': 590, 'total': 6647.0, 'cycling': 4877.0},
'turnerb3': {'running': 1180.0, 'swimming': 500, 'total': 1680.0, 'cycling': 0}}
这些数字基本上是每项运动所消耗的卡路里,我需要让程序按照“总”值的升序对键(像'brownv4'这样的用户名)进行排序。 如果输出可以作为字典的关键字,在这种情况下是用户名,那也是非常方便的。 他输出的信息如下: mahroosm5,alim2,turnerb3,brownv4
答案 0 :(得分:3)
这不是真正的排序,因为字典是无序的,但你可以尝试使用sorted()
和key
一篇好文章here,如果你真的需要一个字典,你可以放{{1}在Ordered Dict
sorted()
<强>输出:强>
import pprint
my_dict = {'alim2': {'running': 1470.0, 'swimming': 650.0, 'total': 2120.0, 'cycling': 0}, 'brownv4': {'running': 0, 'swimming': 0, 'total': 0, 'cycling': 0},
'mahroosm5': {'running': 1180.0, 'swimming': 590, 'total': 6647.0, 'cycling': 4877.0},
'turnerb3': {'running': 1180.0, 'swimming': 500, 'total': 1680.0, 'cycling': 0}}
pprint.pprint(sorted(my_dict.items(), key=lambda key_:key_[1]['total']))
此外,如果您想要颠倒它,您可以添加[('brownv4', {'cycling': 0, 'running': 0, 'swimming': 0, 'total': 0}),
('turnerb3',
{'cycling': 0, 'running': 1180.0, 'swimming': 500, 'total': 1680.0}),
('alim2',
{'cycling': 0, 'running': 1470.0, 'swimming': 650.0, 'total': 2120.0}),
('mahroosm5',
{'cycling': 4877.0, 'running': 1180.0, 'swimming': 590, 'total': 6647.0})]
参数。