为何Python中[1].extend([2,3])无返回值?
为什么Python中[1].extend([2, 3])没有返回值?
这是因为list.extend()是Python列表的原地修改方法——它直接在原列表对象上添加元素,不会创建新的列表返回,所以调用后默认返回None。
你可以换种方式验证:先把列表存到变量里,调用extend()后再查看变量:
my_list = [1] my_list.extend([2, 3]) print(my_list) # 输出 [1, 2, 3]
如果想要直接得到合并后的新列表,可以用列表加法运算符+,它会返回一个新列表,不会修改原列表:
new_list = [1] + [2, 3] print(new_list) # 输出 [1, 2, 3]
Python的这类设计是为了明确区分两种操作:一种是直接修改原对象(节省内存,适合大列表场景),另一种是生成新对象(保留原数据)。除了extend(),append()、sort()、reverse()这些列表方法也都是原地修改,返回None。
内容的提问来源于stack exchange,提问作者Yirmi
相关产品推荐
相关产品推荐

