python切片的例题_请教Python切片分割及插入问题

n = [1,5]

n[1:1] = [2,3,4]

n

>>>[1,2,3,4,5]

n[1:1]返回是[]

为什么[2,3,4]会插入到1,5之间而不是后面,如果想插入一组在[1,5]之后要如何通过切片方式完成?

谢谢楼下几位耐心解答,我又试了试,找到了原理,如果n[1:1]就是在下标1之前插入,如果想在后面插入,可以写成n[2:2] = [2,3,4] 或者 n[2:-1] = [2,3,4] 或者 n[2:] = [2,3,4]

你这个不就是插入到之间了么?往后加用append

首先清楚切片[start:end]

取代位置[start,end-1]

1. 如果end-1 >= start,那么取代这一段的值。

2. 反之,则在start-1后面插入。

[1:1] 从下标1开始,下标1是5,本来要取代5的,但是第二个参数1,意思是终止于下标1,但是不包括1.

所以就变成了插入[2,3,4]。

你可以做个试验

n = [1,5]

n[1:2] = [2,3,4]

n = [1,2,3,4] 这时候2,3,4 就取代了5

Python-2.7.8/objects/listobject.c +687celse if (d > 0) { /* Insert d items */

k = Py_SIZE(a);

if (list_resize(a, k+d) < 0)

goto Error;

item = a->ob_item;

memmove(&item[ihigh+d], &item[ihigh],

(k - ihigh)*sizeof(PyObject *));

}

for (k = 0; k < n; k++, ilow++) {

PyObject *w = vitem[k];

Py_XINCREF(w);

item[ilow] = w;

}

1代表从编号是1的元素前插入,也就是5前,所以插入了234就是12345。而你问的怎么插入1和5之间不正是你展示的例子吗

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd18410.html

相关文章 Recommend

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值