Python中调用列表append方法打印结果为None的原因
产生原因
Python 中列表的 append() 属于原地操作方法,这类方法的设计逻辑是直接修改原对象本身,不会返回修改后的新对象,所有无显式返回值的方法,Python 都会默认返回 None。
你写的代码 print([2,3].append(5)) 执行时,实际流程是:
- 先生成临时列表
[2, 3] - 调用
append(5)把元素 5 加到这个临时列表的末尾,修改动作确实执行了 - 但
print()接收到的入参是append()方法的返回值,也就是默认的None,所以最终打印出来的结果就是 None,而不是你预期的修改后列表。
正确写法
如果要得到 [2,3,5] 的输出,需要先保存列表对象,执行 append 操作后再打印列表本身:
nums = [2, 3] nums.append(5) print(nums)
执行后输出:
[2, 3, 5]
注意:Python 里很多序列、集合的原地修改方法都是这个逻辑,比如列表的
sort()、reverse()、extend(),字典的update()等等,调用这些方法时不要直接拿返回值当修改后的对象用,操作后直接访问原对象才能拿到修改后的结果。
内容的提问来源于stack exchange,提问作者vish
相关产品推荐
相关产品推荐

