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

如何对包含负数的Python字典按数值排序并输出为列表?

解决字典按数值(含负数)排序输出键列表的问题

要实现按字典值从小到大排序并输出对应键的列表,核心是给sorted()函数的key参数指定正确的排序依据:

正确代码实现

number1 = 1
number2 = -5
number3 = -2
number4 = 3

my_dict = {"a" : number1,
           "b" : number2,
           "c" : number3,
           "d" : number4
           }

# 指定key为字典中对应键的值,实现按值升序排序
sorted_keys = sorted(my_dict, key=lambda k: my_dict[k])
print(sorted_keys)

输出结果

['b', 'c', 'a', 'd']

原理说明

  • sorted(my_dict)默认会对字典的键进行排序,不符合需求。
  • 通过lambda k: my_dict[k]定义排序规则:每次取字典的键k,返回其对应的值作为排序的依据,这样sorted()就会按照值的大小对键进行排序,负数会被正确识别并按从小到大排列。

如果需要按值降序排序,只需添加reverse=True参数:

sorted_keys_desc = sorted(my_dict, key=lambda k: my_dict[k], reverse=True)
# 输出: ['d', 'a', 'c', 'b']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 15:48:15