Python列表的引用在功能上没有变化

时间:2015-12-03 06:11:53

标签: python reference

以下是我的测试代码。

测试1

def set(object):
    object = [2,3]
a = [1,3]
set(a)
print a 

输出 [1,3]

测试2

def set(object):
    object[0] = 2
a = [1,3]
set(a)
print a

输出 [2,3]

对于测试2 ,我可以很清楚,因为a是一个列表,它在python中传输引用。因此,当致电set(object)时,objecta的引用。因此,a会更改为[2,3]。 但对于测试1 ,我还不太清楚。我认为答案是[2,3],但真正的答案是[1,3]。谁能告诉我两个测试用例的区别?

1 个答案:

答案 0 :(得分:0)

在第二个测试用例中,您试图改变现有列表,这样就可以了。

但是,在你的第一次测试中,你试图在变量a上分配一个新的列表,但是你在函数范围内进行,而不是你应该返回object并在{{{}}中接收它。 1}}。

a