在第一个示例中,列表的切片的行为类似于列表的一部分:
>>> l = [1, 2, 3]
>>> l[0:2] = []
>>> l
[3]
在第二个示例中,列表的切片的行为类似于列表的副本
>>> l = [1, 2, 3]
>>> k = l[0:2]
>>> k = []
>>> l[1, 2, 3]
哪种一般规则有所不同?
(我猜它与某种方式的赋值语义有关。在第一个例子中l[0:2]
指的是l
的一片,但在第二个例子中k
仅指一个副本切片l。在第二个例子中,l[0:2]
是指副本还是部分?)