You need to enable JavaScript to run this app. 如何使用lambda函数对元组列表排序?代码输出None该如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

如何使用lambda函数对元组列表排序?代码输出None该如何解决?

问题原因

  • 你代码输出None是因为Python的list.sort()是原地排序方法,仅修改调用它的列表本身,没有返回值,默认返回None,你把这个返回值赋值给a打印自然得到None。
  • 你定义的lambda逻辑有误:传入的参数x完全没有被使用,内部硬编码了全局变量listoftuples,也没有用到lambda来定义排序规则。

正确用法

对元组列表排序时,lambda通常用作sort()或者sorted()的key参数,用来指定排序的参照字段。

1. 原地排序(修改原列表)

如果你不需要保留原列表,直接对原列表排序,写法如下:

listoftuples = [('English', 88), ('Science', 90), ('Maths', 97), ('Social sciences', 82)]
# 按元组的第二个元素(分数)升序排序
listoftuples.sort(key=lambda x: x[1])
print(listoftuples)

输出结果:

[('Social sciences', 82), ('English', 88), ('Science', 90), ('Maths', 97)]

2. 生成新的排序后列表(不修改原列表)

如果你需要保留原列表,使用内置函数sorted(),它会返回新的排序完成的列表:

listoftuples = [('English', 88), ('Science', 90), ('Maths', 97), ('Social sciences', 82)]
# 按元组的第二个元素(分数)升序排序,得到新列表
sorted_list = sorted(listoftuples, key=lambda x: x[1])
print(sorted_list)

如果需要按降序排序,加上reverse=True参数即可,示例:

# 按分数从高到低排序
listoftuples.sort(key=lambda x: x[1], reverse=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 10:36:02