Python 为什么附加don';t工作,通过参考传递?

Python 为什么附加don';t工作,通过参考传递?,python,Python,我已经写了下面的代码 a = [1,2,3] b = a.append(4) 为什么b中没有任何内容?因为append不返回修改后的列表-它只是添加新元素,修改列表并返回None。要获得想要的效果,请改为执行以下操作: b = a + [4] 请注意,上面创建了一个新列表,而使用append修改相同的列表。因为append不返回修改后的列表-它只是添加新元素,修改列表并返回None。要获得想要的效果,请改为执行以下操作: b = a + [4] 请注意,上面创建了一个新列表,而使用appe

我已经写了下面的代码

a = [1,2,3]
b = a.append(4)

为什么
b
中没有任何内容?

因为
append
不返回修改后的列表-它只是添加新元素,修改列表并返回
None
。要获得想要的效果,请改为执行以下操作:

b = a + [4]

请注意,上面创建了一个新列表,而使用
append
修改相同的列表。

因为
append
不返回修改后的列表-它只是添加新元素,修改列表并返回
None
。要获得想要的效果,请改为执行以下操作:

b = a + [4]

请注意,上面创建了一个新列表,而使用
append
修改相同的列表。

我不能100%确定您希望b的值是什么。但下面是运行代码时的情况

b的值为None,因为它是方法(.append()的返回值
每个方法都将返回一个值。在本例中,它是None,因为a.append(4)正在附加到数组a。返回值意味着只返回一个值。这不需要一个值。

我不能100%确定b的值是什么。但下面是运行代码时的情况

b的值为None,因为它是方法(.append()的返回值
每个方法都将返回一个值。在本例中,它是None,因为a.append(4)正在附加到数组a。返回值意味着只返回一个值。这不需要值。

append返回None,这就是为什么b中没有任何内容。您的列表a将被修改并添加到列表4中


如果您真的想在b中添加4,那么您可以尝试a+[4]

追加返回None,这就是为什么b中没有任何内容。您的列表a将被修改并添加到列表4中


如果您真的想在b中添加4,那么您可以尝试a+[4]

append不会返回您认为它会返回的内容。首先执行
a.append(4)
然后执行
b=a
。编辑:Oscar的答案可能正是您想要的。顺便说一下:Python不支持按引用传递,所有内容都是按值传递的。append不会返回您认为它会返回的内容。首先执行
a.append(4)
然后执行
b=a
。编辑:Oscar的答案可能就是你想要的。顺便说一下:Python不支持按引用传递,所有东西都是按值传递的。但是如果我做a=[1,2,3],b=a,a.append(4)。B将是[1,2,3,4]。这是为什么?看看使用deepcopy@JOHN因为
b
是对
a
的引用。事实上,
a
b
将是完全相同的列表它们只是指向同一对象的两个变量,对
a
所做的任何操作都将反映在
b
中。但是如果我做a=[1,2,3],b=a,a.append(4)。B将是[1,2,3,4]。这是为什么?看看使用deepcopy@JOHN因为
b
是对
a
的引用。事实上,
a
b
将是完全相同的列表它们只是指向同一对象的两个变量,您对
a
所做的任何操作都将反映在
b
中。