列表插入元素问题
本帖最后由 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位置上吗? 本帖最后由 sunrise085 于 2020-9-2 09:55 编辑
这是规定
insert就是向指定的位置的前面插入元素
实际上 ,insert是先找到你指定的索引值,然后将进行如下拼接:sample[:index]+[待插入元素]+sample sunrise085 发表于 2020-9-2 09:50
这是规定
insert就是向指定的位置的前面插入元素
但是插入位置是正数的时候,比如说插入在2上,它就是插在索引2上啊,是负数的时候为啥就插在前一个了呢? Y小y 发表于 2020-9-2 09:57
但是插入位置是正数的时候,比如说插入在2上,它就是插在索引2上啊,是负数的时候为啥就插在前一个了呢?
因为
sample[-1] #是最后一项
sample[-2]#是倒数第二项
索引为负时,下标不是从零开始的
昨非 发表于 2020-9-2 10:05
因为
索引为负时,下标不是从零开始的
我知道啊,但是上面不是要插在-2位置吗,然后结果是‘2014/01/01’插在了倒数第三啊,我就不明白了。 Y小y 发表于 2020-9-2 09:57
但是插入位置是正数的时候,比如说插入在2上,它就是插在索引2上啊,是负数的时候为啥就插在前一个了呢?
请这么理解:
插入元素是在你指定索引值元素的前面插入,你这里的代码应该这么运算
1. 找到 [-2] 对应的元素
2. 在这个元素前面插入你给的元素
正数索引值也是如此。 Y小y 发表于 2020-9-2 10:08
我知道啊,但是上面不是要插在-2位置吗,然后结果是‘2014/01/01’插在了倒数第三啊,我就不明白了。
insert()方法不支持插入到最后一个,无法实现append()的功能,所以只能这么理解了
(乌龟的屁股{:10_277:}) Y小y 发表于 2020-9-2 09:57
但是插入位置是正数的时候,比如说插入在2上,它就是插在索引2上啊,是负数的时候为啥就插在前一个了呢?
你有认真看我的回答吗?
请看第二句和第三句
insert就是向指定的位置的前面插入元素
insert是先找到你指定的索引值,然后将进行如下拼接:sample[:index]+[待插入元素]+sample
很难理解吗?
就像是跑步比赛,你超过了第二名,你就是第二名,但是你超过了倒数第二名,那么你是倒数第三名。
这个很难理解? Y小y 发表于 2020-9-2 10:08
我知道啊,但是上面不是要插在-2位置吗,然后结果是‘2014/01/01’插在了倒数第三啊,我就不明白了。
这是你自己的理解错误
sample.insert(-2,'2014/01/01')
不是插在倒数第二个位置,而是插在倒数第二个元素的前面
同理
sample.insert(2,'2014/01/01')
这样写也不叫插在第二个位置,而是插在第二个元素的前面 -2不就是从右往左第三个数吗,-2,-1,0 阁阁下 发表于 2020-9-2 13:06
-2不就是从右往左第三个数吗,-2,-1,0
从右边数的时候,没有0,倒数第一个的下标是-1 sunrise085 发表于 2020-9-2 13:26
从右边数的时候,没有0,倒数第一个的下标是-1
嗯嗯,刚刚已经知道了
页:
[1]