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

Python中sorted函数与lambda表达式的关系及示例代码解析

sorted与lambda的搭配关系

sorted()是Python内置的排序函数,其中key是它的核心参数之一,用来指定排序时的比较依据:你需要给key传入一个函数,这个函数会依次作用在待排序序列的每一个元素上,返回一个可比较的值,sorted就按照这个返回值的大小完成排序,不会修改原序列,返回排好序的新列表。

lambda是Python用来定义单行匿名函数的语法,适合写逻辑极简、只需要临时用一次的小函数,刚好匹配sorted的key参数的使用场景——不需要专门用def定义一个可能只用一次的命名函数,代码更简洁。


示例代码执行流程

示例代码如下:

tuple1 = (('a', 23), ('b', 37), ('c', 11), ('d', 29))
tuple1 = tuple(sorted(list(tuple1), key=lambda x: x[1]))
print(tuple1)

代码按从内到外、从上到下的顺序执行,步骤如下:

  1. 第一行定义初始嵌套元组:外层是包含4个元素的元组,每个元素是长度为2的小元组,第一个值为字母,第二个值为整数。
  2. 执行第二行核心逻辑,拆分运算顺序:
    • 首先执行list(tuple1):由于元组是不可变类型,先将外层元组转换为列表,得到待排序的列表对象[('a', 23), ('b', 37), ('c', 11), ('d', 29)]
    • 接着调用sorted()做排序:传入的key=lambda x: x[1]表示,对列表里的每个元素x(也就是每个小元组),取它索引为1的位置的值(即小元组里的第二个整数)作为排序权重。四个元素对应的权重分别是23、37、11、29。
    • sorted默认按权重升序排列,排序后得到新列表[('c', 11), ('a', 23), ('d', 29), ('b', 37)]
    • 最后执行tuple()将排好序的列表转回元组类型,重新赋值给变量tuple1。
  3. 第三行打印tuple1的内容。

最终运行结果
(('c', 11), ('a', 23), ('d', 29), ('b', 37))

补充说明:如果这里不写key参数,sorted会默认按小元组的第一个元素(也就是字母)排序,得到的结果会保持字母顺序排列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 03:01:17