这将根据
f
.
[-f:]
提取最后一个
f
作为新列表的列表元素和
[:-f]
将列表的开头提取到
len(nums) - f
作为一个新的列表。
nums[:]
使用内存临时存储删除的对象(
recycle_on_stack
/
recycle
)把新的复制到列表中。
[:]
意味着我们要穿越整个建筑
norig
是名单的全部长度,我们必须
s = norig * sizeof(PyObject *);
memcpy(recycle, &item[ilow], s);
在整个名单上。见
source code
.
切片赋值发生变化
nums
in place
,有点像拼接操作,但在本例中没有必要使用它,因为直接赋值将获得相同的结果:
nums = nums[-f:] + nums[:-f]
+
在这种情况下
list concatenation
. 操作将创建并返回一个新列表。但是,自从
小精灵
如果被覆盖,则其上一个值将转到垃圾收集器(如果没有其他对象引用它)。
我在数至少4整本
纽斯
在上面的例子中(这两个切片相加为一个,一个用于连接,另两个用于切片分配)。