首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python insert与Ruby insert

Python insert与Ruby insert
EN

Stack Overflow用户
提问于 2015-10-26 05:26:59
回答 3查看 135关注 0票数 2

Python和Ruby都有insert方法。

Python:

代码语言:javascript
复制
>>> a=[1,2,3,4,5]
>>> a.insert(0, 0)
>>> a
[0, 1, 2, 3, 4, 5]

红宝石:

代码语言:javascript
复制
a=[1,2,3,4,5]
# => [1, 2, 3, 4, 5]
a.insert(0,0)
# => [0, 1, 2, 3, 4, 5]

它们有相同的效果,但如果给负指数,结果是不同的。

Python:

代码语言:javascript
复制
>>> a=[1,2,3,4,5]
>>> a.insert(-1, 6)
>>> a
[1, 2, 3, 4, 6, 5]

红宝石:

代码语言:javascript
复制
a=[1,2,3,4,5]
# => [1, 2, 3, 4, 5]
a.insert(-1, 6)
# => [1, 2, 3, 4, 5, 6]

为何会有这种不同呢?如何理解?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-26 05:34:15

在python : insert( x,val)中,它意味着插入到x之前的位置。

代码语言:javascript
复制
so, a.insert(-1, 6)-> put the 6 before -1(location)

在红宝石:它的意思是插入到这个位置x。

代码语言:javascript
复制
so, a.insert(-1, 6)-> put the 6 at -1.
票数 4
EN

Stack Overflow用户

发布于 2015-10-26 05:35:10

在Python中,新对象插入到特定索引的元素之前。给定0的插入点,在索引0处的项之前插入一个新元素,从而使插入的项成为第一项。给定-1的插入点,在最后一个项之前插入一个新元素,因此它成为第二个到最后一个元素。

如果您想在Python list的末尾插入某些内容,只需使用append()即可。

票数 4
EN

Stack Overflow用户

发布于 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索引将在数组末尾插入值。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33338984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档