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

如何对含bit/s类带宽单位的字典列表先按单位再按数值排序

实现思路

  • 首先定义单位和对应比特量级的映射字典,将不同单位统一转换为以bit为基准的数值,方便直接比较大小
  • 对列表每个元素的usage字段做拆分,提取数值部分和单位部分
  • 以转换后的统一比特数值为排序依据,做降序排序即可得到目标结果

可直接运行的代码实现

# 原始列表
my_lst = [
    {"usage": "0.59 Kbit/s"},
    {"usage": "383.34 bit/s"},
    {"usage": "158.13 bit/s"},
    {"usage": "4.15 Gbit/s"},
    {"usage": "18.5 Mbit/s"},
    {"usage": "45 Kbit/s"}
]

# 定义单位对应的比特量级,数值越大代表单位量级越高
unit_map = {
    'bit/s': 1,
    'Kbit/s': 10 ** 3,
    'Mbit/s': 10 ** 6,
    'Gbit/s': 10 ** 9
}

# 自定义排序逻辑
def sort_key(item):
    value_str, unit = item['usage'].split()
    value = float(value_str)
    # 返回统一转换为bit后的值用于排序
    return value * unit_map[unit]

# 执行排序,reverse=True代表从大到小排序
sorted_lst = sorted(my_lst, key=sort_key, reverse=True)

# 输出结果验证
print(sorted_lst)

运行输出结果

[{'usage': '4.15 Gbit/s'}, {'usage': '18.5 Mbit/s'}, {'usage': '45 Kbit/s'}, {'usage': '0.59 Kbit/s'}, {'usage': '383.34 bit/s'}, {'usage': '158.13 bit/s'}]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:36:01