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

如何在Python中实现先按长度再按字母序排序且无需自定义函数?

无需自定义函数实现多关键字排序(长度+字母序)

当然可以!不用写额外的自定义函数,Python本身就支持通过元组作为排序键来实现这种多规则排序,完全贴合你想要的思路。

你之前尝试的key=[len,sorted]写法虽然不对,但方向是对的——我们需要让排序先按长度,长度相同再按字母序。只需要把排序键改成一个包含两个条件的元组就行,具体代码如下:

b = ['six', 'small', 'he', 'foxes', 'saw']
b.sort(key=lambda x: (len(x), x))
print(b)  # 输出: ['he', 'saw', 'six', 'small', 'foxes']

为什么这样可行?

Python在比较元组时会按顺序逐个元素比较:

  • 首先比较元组的第一个元素(也就是字符串的长度len(x)),长度小的排在前面;
  • 当两个元素长度相同时,就会比较元组的第二个元素(字符串本身x),而字符串的默认比较规则就是自然字母序,这样就实现了长度相同的元素按字母排序的需求。

这种方式用lambda表达式替代了自定义函数,既简洁又满足你的要求,完全不用额外定义函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 03:49:51