如何在python中按值对字典排序

2024-04-28 11:35:21 发布

您现在位置:Python中文网/ 问答频道 /正文

试图按帐户值对下面的字典进行排序,但它没有正确地缩短

{'Ith': {'users': '490', 'accounts': '1022'}, 'Al': {'users': '85', 'accounts': '145'}, 'Credit': {'users': '0', 'accounts': '0'}, 'Ahli': {'users': '68', 'accounts': '88'}, 'Standard': {'users': '76', 'accounts': '191'}, 'State': {'users': '1', 'accounts': '1'}, 'Bah': {'users': '58', 'accounts': '94'}, 'Kuw': {'users': '3', 'accounts': '7'}, 'Khal': {'users': '32', 'accounts': '54'}, 'National': {'users': '71', 'accounts': '90'}, 'Ban': {'users': '418', 'accounts': '817'}}

OrderedDict(sorted(a.items(), key=lambda i: i[1]['accounts'], reverse=True))

我得到的结果是

OrderedDict([('Bah', {'users': '58', 'accounts': '94'}), ('National', {'users': '71', 'accounts': '90'}), ('Ahli', {'users': '68', 'accounts': '88'}), ('Ban', {'users': '418', 'accounts': '817'}), ('Kuwe', {'users': '3', 'accounts': '7'}), ('Khal', {'users': '32', 'accounts': '54'}), ('Standard', {'users': '76', 'accounts': '191'}), ('Al', {'users': '85', 'accounts': '145'}), ('Ith', {'users': '490', 'accounts': '1022'}), ('State', {'users': '1', 'accounts': '1'}), ('Credit', {'users': '0', 'accounts': '0'})])

我需要的结果应该是

{'Ith': {'users': '490', 'accounts': '1022'}, 'Ban': {'users': '418', 'accounts': '817'}, 'Standard': {'users': '76', 'accounts': '191'}, 'Al': {'users': '85', 'accounts': '145'}, 'Bah': {'users': '58', 'accounts': '94'}, 'National': {'users': '71', 'accounts': '90'}, 'Ahli': {'users': '68', 'accounts': '88'}, 'Khal': {'users': '32', 'accounts': '54'}, 'Kuw': {'users': '3', 'accounts': '7'}, 'State': {'users': '1', 'accounts': '1'}, 'Credit': {'users': '0', 'accounts': '0'}}

Tags: 帐户usersstandardordereddictstatealcreditaccounts
1条回答
网友
1楼 · 发布于 2024-04-28 11:35:21

尝试使用key=lambda i: int(i[1]['accounts'])。您的帐户“编号”是您按字典顺序排序的字符串。如果希望它们以数字排序,则必须在键函数中将它们转换为数字

相关问题 更多 >