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

为何部分Python内置方法返回值,部分返回None?以sort、pop为例

关于Python列表sort()和pop()方法的输出疑问解答

一、为什么arr.sort()打印输出None?

Python中,像sort()、append()、reverse()这类原地修改列表的方法,设计逻辑就是仅修改原对象本身,不返回新的对象。这类方法的返回值固定为None,这是Python的惯用设计风格——用来明确区分“原地修改操作”和“返回新对象的操作”。

如果想要获取排序后的新列表而不修改原列表,应该使用内置函数sorted(arr),它会创建并返回一个新的排序后的列表,原列表保持不变。示例代码:

arr = [3, 1, 2, 5, 4]
# 原地排序,返回None
print(arr.sort())  # 输出: None
print(arr)         # 输出: [1, 2, 3, 4, 5]

# 返回新排序后的列表,原列表不受影响
arr2 = [3, 1, 2, 5, 4]
sorted_arr = sorted(arr2)
print(sorted_arr)  # 输出: [1, 2, 3, 4, 5]
print(arr2)        # 输出: [3, 1, 2, 5, 4]

二、关于arr.pop()的理解确认

你的理解完全正确。arr.pop()默认会移除列表的最后一个元素,同时返回这个被移除的元素,所以print(arr.pop())会输出5。执行该方法后,原列表会被修改(移除对应元素)。如果指定索引参数,比如arr.pop(1),则会移除并返回索引为1的元素。示例代码:

arr = [1, 2, 3, 4, 5]
print(arr.pop())     # 输出: 5
print(arr)           # 输出: [1, 2, 3, 4]

# 指定索引移除元素
arr = [1, 2, 3, 4, 5]
print(arr.pop(1))    # 输出: 2
print(arr)           # 输出: [1, 3, 4, 5]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 12:02:11