切片索引python

时间:2014-11-11 23:58:07

标签: python

为什么我跑

>>> lista = [1,2,3,4,5]
>>> newl = [8,10]
>>> lista[1:4] = newl
[1,8,10,5]

替换值的索引介于1到3之间。当我运行时。

>>> lista[2:2] = newl
[1,2,8,10,3,4,5]

创建一个新索引来保存newl。

3 个答案:

答案 0 :(得分:1)

切片索引是包含开头且最终排他的。

mylist[1:4]包含索引1,2和3的元素。

来自http://docs.python.org/2/library/stdtypes.html

  

从i到j的s的片被定义为具有索引k的项的序列,使得i <= k <1。学家

因此,如果您获得mylist[2:2],则需要检索2 <= k < 2(无元素)的元素。

但是,list切片语法非常巧妙,可以让您分配到该空间,并将元素插入到该位置。如果你运行

mylist[2:2] = [5,6,7]

然后你将元素插入到当前不包含元素的索引2之前的那个空格中。

答案 1 :(得分:1)

Index

要了解切片,您需要了解这一点。

让我们说

hi = "Hello"

切片hi[1:2]包含"e"。它从第二个角色开始,在第三个角色之前结束。 hi[2:2]不包含任何内容,因为它从第三个字符开始,在第三个字符之前结束。

如果您在字符之间插入内容,则会替换它。如果你这样做:

hi[1:3] = "abcd"

然后"abcd"正在取代"el"。这与列表相同。

答案 2 :(得分:1)

在第一种情况下,您告诉python将lista中的3个特定元素替换为newl中的其他2个元素。

在第二种情况下,您重新初始化lista,然后选择替换lista[2:2]这是一个空列表([]),更确切地说是空列表之前列表的第3个元素(其索引为2),因此您将此空列表替换为newl中的两个值。