如何将Python的append与print代码合并为一行?附失败原因解析
一行完成列表append并打印的方法及错误原因解析
首先给你两种可行的一行写法:
- 用分号分隔两个语句(最直观易读):
a = [1,2,3,4] y = 7 a.append(y); print(a) # 输出 [1, 2, 3, 4, 7] - 或者利用元组取值(可读性较差,不推荐日常使用):
print((a.append(y), a)[1]) # 输出 [1, 2, 3, 4, 7]
接下来解释你两种写法失败的原因:
写法(1):print(a.append(y)) 返回None
list.append() 是原地修改列表的方法——它直接在原列表末尾添加元素,不会生成新的列表对象。Python特意设计这个方法的返回值为None,用来明确告知使用者:这个方法的作用是修改原列表,没有返回新内容。你这里打印的是append()方法的返回值,而非修改后的列表,所以输出None。
写法(2):print(a = a.append(y)) 报错
首先,a.append(y)返回None,执行a = a.append(y)会把变量a赋值为None。其次,你把这个赋值语句写成print(a=...)的形式,相当于给print函数传递了一个名为a的关键字参数,但print函数根本没有定义名为a的参数,因此直接触发语法错误。
内容的提问来源于stack exchange,提问作者ronzenith
相关产品推荐
相关产品推荐

