Python和Ruby都有insert方法。
Python:
>>> a=[1,2,3,4,5]
>>> a.insert(0, 0)
>>> a
[0, 1, 2, 3, 4, 5]红宝石:
a=[1,2,3,4,5]
# => [1, 2, 3, 4, 5]
a.insert(0,0)
# => [0, 1, 2, 3, 4, 5]它们有相同的效果,但如果给负指数,结果是不同的。
Python:
>>> a=[1,2,3,4,5]
>>> a.insert(-1, 6)
>>> a
[1, 2, 3, 4, 6, 5]红宝石:
a=[1,2,3,4,5]
# => [1, 2, 3, 4, 5]
a.insert(-1, 6)
# => [1, 2, 3, 4, 5, 6]为何会有这种不同呢?如何理解?
发布于 2015-10-26 05:34:15
在python : insert( x,val)中,它意味着插入到x之前的位置。
so, a.insert(-1, 6)-> put the 6 before -1(location)在红宝石:它的意思是插入到这个位置x。
so, a.insert(-1, 6)-> put the 6 at -1.发布于 2015-10-26 05:35:10
在Python中,新对象插入到特定索引的元素之前。给定0的插入点,在索引0处的项之前插入一个新元素,从而使插入的项成为第一项。给定-1的插入点,在最后一个项之前插入一个新元素,因此它成为第二个到最后一个元素。
如果您想在Python list的末尾插入某些内容,只需使用append()即可。
发布于 2015-10-26 05:36:54
在Python中,带有负索引的insert()与正索引更一致。a.insert(i, x)总是等同于a[i:i] = [x]。但是,不能在结束后使用负索引插入。
您可以使用a.insert(len(a), x),它相当于a.append(x)。
在Ruby中,Array#insert显式地表示,如果索引为负值,则在元素之后插入新值:
负索引从数组的末尾向后计数,其中
-1是最后一个元素。如果使用负索引,则将在该元素之后插入给定的值,因此使用-1索引将在数组末尾插入值。
https://stackoverflow.com/questions/33338984
复制相似问题