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

如何对值为自定义对象的Python字典按对象方法返回的字数排序?

实现方法

根据你的使用场景,可分为两种方案处理:

场景1:获得按字数升序排列的新字典

Python 3.7及以上版本原生字典支持保留插入顺序,直接用sorted处理键值对即可:

# 按word_count从小到大排序生成新字典
sorted_file_dict = dict(sorted(
    file_dict.items(),
    key=lambda item: item[1].get_word_count()
))

参数说明:

  • file_dict.items() 返回所有(文件名, text_object实例)的键值对序列
  • key参数指定排序依据,lambda表达式取每个键值对的第二个元素(即text_object实例),调用get_word_count()返回的整数值作为排序标准
  • sorted默认升序排列,刚好符合从小到大的排序需求

如果使用的是3.7以下版本的Python,原生字典不保证顺序,可以用collections.OrderedDict存储排序结果:

from collections import OrderedDict
sorted_file_dict = OrderedDict(sorted(
    file_dict.items(),
    key=lambda item: item[1].get_word_count()
))

场景2:仅需要获取字数最少的对象排查异常

不需要对全量数据排序,直接用min函数即可,性能更高:

# 直接获取字数最少的文件名称和对应实例
min_filename, min_text_obj = min(
    file_dict.items(),
    key=lambda item: item[1].get_word_count()
)
# 输出最小字数验证
print(min_filename, min_text_obj.get_word_count())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:12:00