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

Python教程中Lambda函数排序示例结果疑问求助

关于Python Lambda作为sort key的排序结果疑问解答

你对pairs.sort(key=lambda pair: pair[1])的理解完全正确——确实是用每个元组的第二个元素作为排序依据。之所以得到这个结果,核心原因是Python中字符串的排序遵循字典序(ASCII码顺序),不是按日常认知的数字对应英文单词顺序来排的。

我们拆解一下每个元组的第二个元素以及它们的字典序逻辑:

  • 四个字符串分别是:'one'、'two'、'three'、'four'
  • 字符串比较是逐字符按ASCII码值对比:
    • 首字母的ASCII值:'f'(102) < 'o'(111) < 't'(116),所以'four'排最前,接着是'one',剩下的'three'和'two'首字母都是t,继续比第二个字符
    • 'three'的第二个字符是'h'(104),'two'的第二个字符是'w'(119),104 < 119,所以'three'排在'two'前面

对应到原元组,按这个顺序排列后,就得到了[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]的结果。

你可以用下面的代码验证每个字符的ASCII值:

print(ord('f'), ord('o'), ord('t'), ord('h'), ord('w'))
# 输出:102 111 116 104 119

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 08:55:23