python - 如何在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'}}
解决方案
尝试使用key=lambda i: int(i[1]['accounts'])
. 您的帐户“数字”是您按字典顺序排序的字符串。如果你想让它们按数字排序,你必须在你的键函数中将它们转换为数字。
推荐阅读
- c# - RevealBackgroundBrush 中的显示突出显示不起作用
- c# - 如何在 acumatica 中获取扩展的缓存
- android - 当用户 1-2 滚动离开 RecyclerView 中的广告时发出广告请求
- blazor - 如何为使用 CDN 的本地测试设置 blazor
- google-cloud-storage - 使用 Google Cloud Storage 进行连接池
- javascript - 无需通过 JS 功能点击即可打开和关闭 Bootstrap 下拉菜单
- java - 为什么在 Spring 中没有 DI 时缓存不起作用?
- javascript - 如何在 vuetify 中创建可滚动的 v-list?
- c# - 在 blazor 客户端中放置配置文件的位置
- git - 如何在不拉取的情况下在 git 中推送记录(对于执行日志维护,只需在 git 上附加多个用户的文件)