python中a = x和a = x [:]之间有什么区别?

Sup*_*ech 1 python python-2.7

我正在努力学习Python.有人可以帮我理解下面两个之间的区别:a = x vs a = x [:]

K D*_*awG 6

a = x 创建一个参考:

a = [2]
x = a
print id(a)
print id(x)
Run Code Online (Sandbox Code Playgroud)

生产:

39727240
39727240
Run Code Online (Sandbox Code Playgroud)

因此,如果你改变a那么x也会改变,因为它们是相同的对象

而

a = x[:] 创建一个新对象

a = [2]
x = a[:]
print id(a)
print id(x)
Run Code Online (Sandbox Code Playgroud)

生产:

41331528
39722056
Run Code Online (Sandbox Code Playgroud)

但是在这里,改变a并没有改变,x因为它们是不同的对象