Python中列表切片后调用append追加元素返回None问题求解
问题产生原因
Python列表的append()方法属于原地修改类方法:它的作用是直接在调用该方法的列表末尾追加元素,不会返回修改后的新列表,这个方法的固定返回值就是None。
代码里把y.append(num_4)的执行结果直接赋值给变量z,本质是把方法返回的None存入了z,最终打印z得到None是符合语法逻辑的,问题和切片操作无关,是对append()方法的返回值认知有偏差。
另外注意,不建议用list作为变量名,这会覆盖Python内置的列表类型,容易触发其他异常。
原有错误代码
list = [54, 44, 27, 79, 91, 41] num_4 = list[4] def fun_2(): y = list[:2] z = y.append(num_4) print(z) fun_2()
正确实现方案
调用append()之后,切片得到的新列表y本身就已经完成了元素追加,不需要接收方法的返回值,直接使用y就是需要的、追加完元素的新列表。修正后的代码如下:
my_list = [54, 44, 27, 79, 91, 41] num_4 = my_list[4] def fun_2(): y = my_list[:2] y.append(num_4) print(y) fun_2()
运行上述代码后输出结果为[54, 44, 91],完全符合预期。
内容的提问来源于stack exchange,提问作者Diler Launda
相关产品推荐
相关产品推荐

