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

Python如何基于深层嵌套键对嵌套字典组成的列表进行排序

Python 按嵌套字典值排序的实现方案

针对多层嵌套字典的列表排序需求,直接利用Python内置排序方法的自定义key参数即可实现,不需要额外依赖:

基础实现(数据无缺失场景)

sort()会直接修改原列表,sorted()会返回新的排序后列表,按需选择即可:

  • 按market_cap从小到大(升序)排序:
# 生成新的排序后列表
sorted_asc = sorted(ls, key=lambda item: item["quote"]["USD"]["market_cap"])

# 直接修改原列表排序
ls.sort(key=lambda item: item["quote"]["USD"]["market_cap"])
  • 按market_cap从大到小(降序,市值类场景常用)排序:
# 生成新的排序后列表
sorted_desc = sorted(ls, key=lambda item: item["quote"]["USD"]["market_cap"], reverse=True)

# 直接修改原列表排序
ls.sort(key=lambda item: item["quote"]["USD"]["market_cap"], reverse=True)

兼容缺失字段的鲁棒实现

如果你的数据存在部分字典缺少quote/USD/market_cap任意层级字段的情况,可以用get方法设置默认值避免报错:

# 缺失市值的元素默认排在末尾,默认值可根据排序方向调整
sorted_safe = sorted(ls, key=lambda item: item.get("quote", {}).get("USD", {}).get("market_cap", float("inf")))

原理说明

该方案和一级键排序的逻辑完全一致,只是在key函数中把取值路径从一级键扩展到了多层嵌套的路径而已,支持任意深度的嵌套字典取值排序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:48:03