You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对Python嵌套字典按count或tradeAmount等value字段排序

实现Python嵌套字典按指定字段排序

前置说明

  • Python 3.7及以上版本原生字典默认保留插入顺序,排序后直接转为dict即可
  • 3.6及更低版本需要使用collections.OrderedDict存储排序结果,才能保证顺序符合预期

你给出的预期结果是按嵌套值的count字段降序排列实现的,具体代码如下:

完整实现代码

# 原始字典定义
original_dict = {
    'KRW-SOL': {'count': 3, 'tradeAmount': 437540}, 
    'KRW-LOOM': {'count': 78, 'tradeAmount': 21030768}, 
    'KRW-ONT': {'count': 14, 'tradeAmount': 947009}, 
    'KRW-FCT2': {'count': 1, 'tradeAmount': 491935}, 
    'KRW-DKA': {'count': 30, 'tradeAmount': 12053758}
}

# 按count字段降序排序,得到的结果和你给出的预期完全一致
sorted_by_count = dict(sorted(
    original_dict.items(),
    key=lambda item: item[1]['count'],  # 指定排序字段为嵌套的count值
    reverse=True  # True为降序,False为升序
))

# 如果需要按tradeAmount字段排序,仅需要修改key里的字段名即可
sorted_by_amount = dict(sorted(
    original_dict.items(),
    key=lambda item: item[1]['tradeAmount'],
    reverse=True
))

# Python 3.6及更低版本写法,替换dict为OrderedDict即可
from collections import OrderedDict
sorted_by_count_low_version = OrderedDict(sorted(
    original_dict.items(),
    key=lambda item: item[1]['count'],
    reverse=True
))

输出验证

打印sort_by_count得到的结果和你给出的预期完全一致:

{'KRW-LOOM': {'count': 78, 'tradeAmount': 21030768},
 'KRW-DKA': {'count': 30, 'tradeAmount': 12053758},
 'KRW-ONT': {'count': 14, 'tradeAmount': 947009},
 'KRW-SOL': {'count': 3, 'tradeAmount': 437540},
 'KRW-FCT2': {'count': 1, 'tradeAmount': 491935}}

内容的提问来源于stack exchange,提问作者realmasse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:45:07