Python中使用.append扩展列表返回None的问题排查
问题根源与修正方案
嘿,这个问题其实很常见——你踩中了Python列表append()方法的一个小坑!
错误原因
list.append()是一个原地修改的方法:它会直接把新元素添加到原列表的末尾,但这个方法本身的返回值是None。你在代码里把append()的返回值重新赋值给了number_list,相当于把原本存储列表的变量给覆盖成了None,所以后续的print语句自然输出的都是None。
修正后的代码
对应方法1(添加比最后一个整数大1的数值)
number_list = [1,2,3,4,5,6,7,8] # 直接调用append,不需要赋值回原变量 number_list.append(number_list[-1] + 1) print(number_list) # 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9] print(number_list)
对应方法2(添加第一个数+最后一个数的结果)
number_list = [1,2,3,4,5,6,7,8] number_list.append(number_list[0] + number_list[-1]) print(number_list) # 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9] print(number_list)
额外小技巧
如果你非要用赋值的方式更新列表(虽然没必要,append()效率更高),可以用列表拼接的方式——拼接会返回一个新列表,不会修改原列表:
number_list = [1,2,3,4,5,6,7,8] number_list = number_list + [number_list[-1] + 1] print(number_list)
不过要注意,这种方式会创建一个全新的列表对象,当列表很大的时候,性能会比append()差一些,所以推荐优先用append()的原地修改方式。
内容的提问来源于stack exchange,提问作者Arian Ghorbani
相关产品推荐
相关产品推荐

