在python中为什么列表与list [:]不一样?

ce1*_*ce1 1 python list

我有一个列表,ls = [0 1 2 3 4]我正在运行以下内容:

print(ls is ls[:])
Run Code Online (Sandbox Code Playgroud)

我得到的输出为False.为什么他们不是同一个名单?当我打印两个版本时,我会打印相同的列表.

che*_*ner 6

ls在内存中引用一个对象; 使用第一个中包含的相同引用ls[:]创建一个 list对象.

>>> ls = [0, 1, 2, 3, 4]
>>> new_ls = ls[:]
>>> id(ls) == id(new_ls)
False
>>> id(ls[0]) == id(new_ls[0])
True
Run Code Online (Sandbox Code Playgroud)