用负索引切割赋值

时间:2018-03-05 10:13:01

标签: variable-assignment slice

我在切片分配方面遇到了一些问题:

据我所知,切片的一般语法是l [start:stop:step]

当我们使用正步骤然后我们向前横向时,当我们使用负步骤时我们向后横向:

1 = [1,2,3,4]

1 [3:1:1] = [5]

当我使用上面的赋值时,它将元素5插入索引3,如插入操作 但是当我使用的时候 升[-3:-1:-1] = [5] 然后它显示我的价值错误.... 我很困惑.. 请解释一下。

1 个答案:

答案 0 :(得分:0)

假设您在 Python 中询问切片, 步骤' part将使切片成为扩展切片。

只有右侧的列表才能分配扩展切片 手侧与扩展切片的大小相同。 看到 https://docs.python.org/2.3/whatsnew/section-slices.html

所以令人困惑的事实是你的l[3:1:1] = [5] 加注 一个ValueError,因为左右大小不同(0和1;注意 您的l[3:1:1]l[-3:-1:-1]评估为空列表。

我认为这可以解释为步骤1没有区别 来自原始切片语法[start:end],因此可以处理 作为正常切片。

如果您的目标是插入,请不要使用该步骤。