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

如何按嵌套字典中指定键的值对字典进行正确排序?

按嵌套字典的指定键值降序排序的实现方法

没问题,在Python里要实现这个需求非常简单,用内置的sorted()函数就能轻松搞定,我给你直接上可运行的代码和解释:

完整实现代码

# 定义你的原始字典
mydict = dict()
mydict["a"] = {"foo": 0.3, "boo": 0.1}
mydict["b"] = {"foo": 0.1, "boo": 0.2}
mydict["c"] = {"foo": 0.8, "boo": 0.3}
mydict["d"] = {"foo": 0.5, "boo": 0.4}
mydict["e"] = {"foo": 0.2, "boo": 0.5}

# 按"foo"的值降序排序
sorted_list = sorted(mydict.values(), key=lambda x: x["foo"], reverse=True)

# 打印结果验证
print(sorted_list)

代码拆解说明

  • mydict.values():先提取原始字典里所有的子字典(也就是{"foo": 0.3, "boo": 0.1}这类值),得到一个可迭代的子字典集合。
  • key=lambda x: x["foo"]:用lambda匿名函数指定排序的核心依据——每个子字典x的"foo"键对应的值。
  • reverse=True:把默认的升序排序改成降序,这样就能得到你想要的从大到小排列的结果。

运行这段代码后,输出的结果完全符合你的预期:

[{"foo": 0.8, "boo": 0.3}, {"foo": 0.5, "boo": 0.4}, {"foo": 0.3, "boo": 0.1}, {"foo": 0.2, "boo": 0.5}, {"foo": 0.1, "boo": 0.2}]

如果之后需要按其他键(比如"boo")排序,只需要把lambda里的x["foo"]改成x["boo"]就行,非常灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 15:42:42