python字典中的sorted是什么?怎么用?

来源:Vuejs社区作者:深圳网站建设头衔:草根站长
导读:本期聚焦于小伙伴创作的《python字典中的sorted是什么?怎么用?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《python字典中的sorted是什么?怎么用?》有用,将其分享出去将是对创作者最好的鼓励。

Python中的sorted是内置的排序函数,并非字典特有的方法,它可以对任何可迭代对象进行排序,返回一个新的排序后的列表,不会修改原对象。当我们需要对字典的键、值或者键值对进行排序时,就可以借助sorted函数来实现。

python字典中的sorted是什么?怎么用?

sorted函数的基本语法

sorted函数的基本语法格式如下:

sorted(iterable, key=None, reverse=False)

参数说明:

  • iterable:需要排序的可迭代对象,比如字典、列表、元组等。
  • key:可选参数,用来指定排序的依据,是一个函数,该函数会作用于可迭代对象的每个元素上,根据返回结果排序。
  • reverse:可选参数,布尔类型,默认是False表示升序排序,设置为True表示降序排序。

对字典的键进行排序

字典本身是可迭代对象,直接对字典使用sorted函数,默认会遍历字典的键进行排序,返回排序后的键组成的列表。

# 定义一个示例字典
my_dict = {"c": 3, "a": 1, "b": 2}

# 对字典的键进行升序排序
sorted_keys = sorted(my_dict)
print(sorted_keys)  # 输出 ['a', 'b', 'c']

# 对字典的键进行降序排序
sorted_keys_desc = sorted(my_dict, reverse=True)
print(sorted_keys_desc)  # 输出 ['c', 'b', 'a']

对字典的值进行排序

如果需要对字典的值进行排序,就需要借助key参数,指定排序依据为字典的值。可以通过dict.get方法或者lambda表达式来获取每个键对应的值作为排序依据。

my_dict = {"c": 3, "a": 1, "b": 2}

# 使用lambda表达式按值升序排序,返回排序后的键列表
sorted_keys_by_value = sorted(my_dict, key=lambda k: my_dict[k])
print(sorted_keys_by_value)  # 输出 ['a', 'b', 'c']

# 按值降序排序
sorted_keys_by_value_desc = sorted(my_dict, key=lambda k: my_dict[k], reverse=True)
print(sorted_keys_by_value_desc)  # 输出 ['c', 'b', 'a']

# 使用dict.get方法实现同样的效果
sorted_keys_by_get = sorted(my_dict, key=my_dict.get)
print(sorted_keys_by_get)  # 输出 ['a', 'b', 'c']

对字典的键值对进行排序

如果需要直接对字典的键值对进行排序,可以先通过items()方法获取字典的键值对视图,再结合sorted函数和key参数进行排序,排序后可以得到排序后的键值对列表,也可以转成新的有序字典。

my_dict = {"c": 3, "a": 1, "b": 2}

# 按键对键值对进行升序排序
sorted_items_by_key = sorted(my_dict.items())
print(sorted_items_by_key)  # 输出 [('a', 1), ('b', 2), ('c', 3)]

# 按值对键值对进行升序排序
sorted_items_by_value = sorted(my_dict.items(), key=lambda item: item[1])
print(sorted_items_by_value)  # 输出 [('a', 1), ('b', 2), ('c', 3)]

# 将排序后的键值对转成新的字典(Python3.7+ 字典会保持插入顺序)
new_dict = dict(sorted_items_by_value)
print(new_dict)  # 输出 {'a': 1, 'b': 2, 'c': 3}

注意事项

  • sorted函数返回的是列表,不会修改原字典,如果需要得到排序后的字典,需要手动将排序结果转成字典。
  • 当字典的键或者值不是可比较类型时,使用sorted函数会抛出类型错误,比如字典中同时包含字符串和数字的键,直接排序就会报错。
  • 如果需要对复杂的嵌套字典进行排序,key参数可以写更复杂的lambda表达式,比如根据嵌套字典的某个字段排序。
# 嵌套字典排序示例
students = {
    "stu1": {"name": "张三", "score": 85},
    "stu2": {"name": "李四", "score": 92},
    "stu3": {"name": "王五", "score": 78}
}

# 按学生分数升序排序,返回排序后的键值对列表
sorted_students = sorted(students.items(), key=lambda item: item[1]["score"])
print(sorted_students)
# 输出 [('stu3', {'name': '王五', 'score': 78}), ('stu1', {'name': '张三', 'score': 85}), ('stu2', {'name': '李四', 'score': 92})]

pythonsorted字典排序修改时间:2026-07-14 19:48:27

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。