Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在这两种情况下使用append()有什么区别?_Python_List_Python 3.x_Append - Fatal编程技术网

Python 在这两种情况下使用append()有什么区别?

Python 在这两种情况下使用append()有什么区别?,python,list,python-3.x,append,Python,List,Python 3.x,Append,我找到了这段代码,但我不明白为什么.append()返回None。回答的人说是因为 .append()更改列表并返回None 但这对我来说毫无意义。我解释上述示例代码块的方式很简单,您必须先将其附加到列表中,然后才能对其进行rpint,但这违背了我在对语句中的语句求值时对求值顺序的理解。当使用它作用于lis并附加到其上的append方法时。它通过引用而不是复制作用于lis 类型为list的数据类型是可变的,这意味着您可以直接更改对象而无需替换它 这种质量允许使用append、extend等方法进

我找到了这段代码,但我不明白为什么
.append()
返回
None
。回答的人说是因为

.append()
更改列表并返回
None


但这对我来说毫无意义。我解释上述示例代码块的方式很简单,您必须先将其附加到列表中,然后才能对其进行rpint,但这违背了我在对语句中的语句求值时对求值顺序的理解。

当使用它作用于
lis
并附加到其上的
append
方法时。它通过引用而不是复制作用于
lis

类型为
list
的数据类型是可变的,这意味着您可以直接更改对象而无需替换它

这种质量允许使用
append
extend
等方法进行打印

当对对象调用类似的方法时,它们实际上会更改引用的对象,但不会返回任何内容(
None
),因为我们需要它们的功能是更改对象,而不是返回输出


当您计算
print(lis.append(4))
时,解释器调用
lis.append(4)
,更改
lis
并返回
None
。现在,它移动到打印经过计算的表达式-
print(None)
,这就是您得到的结果。

有什么不明白的?你引用的链接问题完美地解释了这一点。将对append语句求值,并返回None。同时,列表也发生了变化。
append
不是返回任何内容的数学函数。它是一组改变对象本身的指令。您希望得到什么结果?根据您的看法,评估顺序的哪一部分似乎很麻烦<代码>打印(lis.append(4))首先计算
lis.append(4)
None
,然后打印。哦,好的。抱歉,Python新手!如果有5个人给了我同样的答案,这个问题真的“不清楚”吗?
lis = [1,2,3]

print(lis.append(4))
# Returns None

#############

lis = [1,2,3]

lis.append(4)

print(lis)
# Returns [1,2,3,4]