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

如何使用lambda函数按嵌套列表的第二个元素排序字典?

问题分析

你当前代码的问题在于:直接对字典调用sorted()时,默认迭代的是字典的键,而非键值对。lambda里的x是字典的键(比如"third"),x[1][-1]实际是取字符串的第二个字符再取最后一位,完全偏离了你要获取嵌套列表第二个元素的目标。

正确写法

要按嵌套列表的第二个元素从大到小排序,需要:

  • 迭代字典的键值对(用testing.items())
  • 在lambda中指定排序依据为值列表的第二个元素(索引1或-1都可以,因为列表只有两个元素)
  • 添加reverse=True实现降序排序

完整示例(获取排序后的键值对列表)

testing = {"third":[1,89],"first":[5,46],"second":[3,59]}
sorted_result = sorted(testing.items(), key=lambda x: x[1][1], reverse=True)
print(sorted_result)

输出:

[('third', [1, 89]), ('second', [3, 59]), ('first', [5, 46])]

仅获取排序后的键列表

如果只需要排序后的键,可对结果做简单推导:

sorted_keys = [item[0] for item in sorted(testing.items(), key=lambda x: x[1][1], reverse=True)]
print(sorted_keys)

输出:

['third', 'second', 'first']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:05:14