鱼C论坛

 找回密码
 立即注册
查看: 1448|回复: 11

[已解决]列表插入元素问题

[复制链接]
发表于 2020-9-2 09:47:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Y小y 于 2020-9-2 10:15 编辑
sample = ['1325','City Hospital',0.67]
sample.insert(-2,'2014/01/01')
sample

为什么结果是['1325', '2014/01/01', 'City Hospital', 0.67],而不是['1325','City Hospital','2014/01/01',0.67]。
不是插入在-2位置上吗?
最佳答案
2020-9-2 09:50:54
本帖最后由 sunrise085 于 2020-9-2 09:55 编辑

这是规定
insert就是向指定的位置的前面插入元素
实际上 ,insert是先找到你指定的索引值,然后将进行如下拼接:sample[:index]+[待插入元素]+sample[index:]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-2 09:50:54 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sunrise085 于 2020-9-2 09:55 编辑

这是规定
insert就是向指定的位置的前面插入元素
实际上 ,insert是先找到你指定的索引值,然后将进行如下拼接:sample[:index]+[待插入元素]+sample[index:]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-2 09:57:02 | 显示全部楼层
sunrise085 发表于 2020-9-2 09:50
这是规定
insert就是向指定的位置的前面插入元素

但是插入位置是正数的时候,比如说插入在2上,它就是插在索引2上啊,是负数的时候为啥就插在前一个了呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-2 10:05:01 | 显示全部楼层
Y小y 发表于 2020-9-2 09:57
但是插入位置是正数的时候,比如说插入在2上,它就是插在索引2上啊,是负数的时候为啥就插在前一个了呢?

因为
sample[-1] #是最后一项
sample[-2]#是倒数第二项
索引为负时,下标不是从零开始的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-2 10:08:49 | 显示全部楼层
昨非 发表于 2020-9-2 10:05
因为

索引为负时,下标不是从零开始的

我知道啊,但是上面不是要插在-2位置吗,然后结果是‘2014/01/01’插在了倒数第三啊,我就不明白了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-2 10:09:13 | 显示全部楼层
Y小y 发表于 2020-9-2 09:57
但是插入位置是正数的时候,比如说插入在2上,它就是插在索引2上啊,是负数的时候为啥就插在前一个了呢?

请这么理解:
插入元素是在你指定索引值元素的前面插入,你这里的代码应该这么运算
1. 找到 [-2] 对应的元素
2. 在这个元素前面插入你给的元素

正数索引值也是如此。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-2 10:11:35 | 显示全部楼层
Y小y 发表于 2020-9-2 10:08
我知道啊,但是上面不是要插在-2位置吗,然后结果是‘2014/01/01’插在了倒数第三啊,我就不明白了。

insert()方法不支持插入到最后一个,无法实现append()的功能,所以只能这么理解了
(乌龟的屁股
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-2 11:37:23 | 显示全部楼层
Y小y 发表于 2020-9-2 09:57
但是插入位置是正数的时候,比如说插入在2上,它就是插在索引2上啊,是负数的时候为啥就插在前一个了呢?

你有认真看我的回答吗?
请看第二句和第三句
insert就是向指定的位置的前面插入元素
insert是先找到你指定的索引值,然后将进行如下拼接:sample[:index]+[待插入元素]+sample[index:]

很难理解吗?
就像是跑步比赛,你超过了第二名,你就是第二名,但是你超过了倒数第二名,那么你是倒数第三名。
这个很难理解?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-2 11:40:20 | 显示全部楼层
Y小y 发表于 2020-9-2 10:08
我知道啊,但是上面不是要插在-2位置吗,然后结果是‘2014/01/01’插在了倒数第三啊,我就不明白了。

这是你自己的理解错误
sample.insert(-2,'2014/01/01')
不是插在倒数第二个位置,而是插在倒数第二个元素的前面
同理
sample.insert(2,'2014/01/01')
这样写也不叫插在第二个位置,而是插在第二个元素的前面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-2 13:06:57 | 显示全部楼层
-2不就是从右往左第三个数吗,-2,-1,0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-2 13:26:03 | 显示全部楼层
阁阁下 发表于 2020-9-2 13:06
-2不就是从右往左第三个数吗,-2,-1,0

从右边数的时候,没有0,倒数第一个的下标是-1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-2 13:58:47 | 显示全部楼层
sunrise085 发表于 2020-9-2 13:26
从右边数的时候,没有0,倒数第一个的下标是-1

嗯嗯,刚刚已经知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 20:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表