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

如何根据第一个字典的值序列对第二个字典进行排序?

按指定字典的数值顺序排序另一字典

要实现按字典s的数值序列对字典o排序,利用Python 3.7+字典保留插入顺序的特性,结合sorted函数即可完成:

s = {"J":1, "R":2, "E":3, "L":4}
o = {"J":"V140", "E":"21:45", "R":"SUN MON TUE WED THU", "L":"V2730"}

# 按s中键对应的数值排序o的键,生成有序字典
sorted_o = {key: o[key] for key in sorted(o.keys(), key=lambda k: s[k])}
print(sorted_o)

代码说明

  • sorted(o.keys(), key=lambda k: s[k]):对o的键进行排序,排序规则是取该键在s中对应的数值作为排序依据,由此得到和s数值顺序一致的键序列。
  • 字典推导式{key: o[key] ...}:基于排序后的键序列重新构建字典,Python 3.7+会严格保留插入顺序,最终得到符合预期的有序字典。

如果o中存在s没有的键,可按需调整:

  • 过滤额外键:将sorted的对象替换为s.keys()即可;
  • 额外键放末尾:修改key参数为lambda k: s.get(k, float('inf')),让额外键的排序权重设为无穷大,自然排在最后。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 13:32:03