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

为什么Python的list.sort()方法调用后返回None?

为什么Python列表sort()后赋值会得到None?

问题出在mylist = mylist.sort()这行代码上:

  • Python的列表sort()方法是原地修改操作,它会直接对原列表进行排序,不会生成并返回新的排序列表,该方法的返回值固定为None。
  • 当你把这个None赋值给mylist变量后,原本的列表虽然已经被排序,但变量mylist现在指向的是None,所以打印出来的结果就是None。

两种正确的写法:

写法1:直接调用sort(),不赋值

mylist = []
mylist.append(5)
mylist.append(27)
mylist.append(3)
mylist.append(12)
print(mylist)

mylist.sort()  # 原地排序,无需赋值
print(mylist)

输出结果:

[5, 27, 3, 12]
[3, 5, 12, 27]

写法2:使用sorted()函数(保留原列表)

如果你不想修改原列表,想得到一个新的排序列表,可以用sorted()函数,它会返回排序后的新列表,原列表保持不变:

mylist = []
mylist.append(5)
mylist.append(27)
mylist.append(3)
mylist.append(12)
print(mylist)

sorted_list = sorted(mylist)  # 获取新的排序列表
print(sorted_list)
print(mylist)  # 原列表顺序不变

输出结果:

[5, 27, 3, 12]
[3, 5, 12, 27]
[5, 27, 3, 12]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:47:43