我理解切片,但我不明白为什么这个会打印 3 ???
这是我的理解:
它说 x = [0,1,2,3,4] 然后
索引 2 到 2 将被替换为 [0,1,2,3,4]
所以 x[5] 不在范围内
x = range(5)
x[2:3] = range(5)
print x[5]
请您参考如下方法:
我认为如果在执行切片分配后打印整个 x 列表,您将不明白发生了什么。它将是 [0, 1, 0, 1, 2, 3, 4, 3, 4]。初始范围中的 2 已替换为整个第二个范围,扩展了列表以使其适合。
如果切片的步长为 1 或 -1,则只能使用此类切片赋值扩展列表。如果您分配给具有较大步长的列表,则您要替换它的序列的大小必须完全相同。
