答案 0 :(得分:7)
它们并不等同。这两个例子可以让你理解其中的差异。
示例1:
>>> b = [1,2,3]
>>> a = b
>>> a[:] = []
>>> print b
[]
示例2:
>>> b = [1,2,3]
>>> a = b
>>> a = []
>>> print b
[1,2,3]
答案 1 :(得分:1)
正如您所料,正如他们所使用的那样解释了这一点:
这意味着以下切片返回列表a的浅表副本
答案 2 :(得分:1)
第二行不会修改列表,它只是安排a
指向一个新的空列表。第一行修改a指向的列表。在python解释器中考虑这个示例seeion:
>>> b=[1,2,3]
>>> a=b
>>> a[:]=[]
>>> a
[]
>>> b
[]
a
和b
都指向同一个列表,因此我们可以看到a[:]=[]
清空了列表,现在a
和b
都指向相同的空列表。