Python列表append方法赋值后打印返回None的原因咨询
为什么调用列表append()方法后变量返回None?
嗨,我来帮你理清这个问题!
你遇到的情况是Python列表方法的一个常见特性:append()是原地修改原列表的方法,它不会返回修改后的新列表,而是返回None。
咱们看你的代码:
pizza_vege=['tomato sauce','mushrooms','pepper','cheese','garlic powder'] print(pizza_vege) pizza_peper=pizza_vege.append('peperoni') print(pizza_peper) #此处应显示添加'pepperoni'后的pizza_vege列表
当你执行pizza_peper = pizza_vege.append('peperoni')时,append()确实把'peperoni'添加到了原列表pizza_vege里,但它本身的返回值是None,所以pizza_peper被赋值成了None,这就是你打印它得到None的原因。
正确的写法应该是这样:
不需要把append()的结果赋值给新变量,直接修改原列表后打印原列表即可:
pizza_vege=['tomato sauce','mushrooms','pepper','cheese','garlic powder'] print(pizza_vege) # 直接调用append修改原列表,无需赋值 pizza_vege.append('peperoni') print(pizza_vege) # 现在会输出添加元素后的完整列表
额外补充:
类似append()这种原地修改列表的方法还有extend()、sort()、reverse(),它们的返回值都是None,所有操作都直接作用在原列表上。
如果你想保留原列表不变,同时得到一个包含新元素的新列表,可以用列表拼接的方式:
pizza_vege=['tomato sauce','mushrooms','pepper','cheese','garlic powder'] # 生成新列表,原列表不受影响 pizza_peper = pizza_vege + ['peperoni'] print(pizza_peper) # 输出添加元素后的新列表 print(pizza_vege) # 原列表保持不变
内容的提问来源于stack exchange,提问作者Atizva Delequarc
相关产品推荐
相关产品推荐

