python 删除尾部0_python 切片全整理

8b8b686e6c547a581d99f208d60ba7fc.png

python 切片简单灵活,因为灵活常常容易混淆。

本文整理了python 切片的所有的常见用法,并分门别类,方便读者借鉴参考。

文中所有用例是通过jupyter notebook测试的,原代码在github.

切片

模式[start:end:step]

读取

l = [1,2,3,4,5,6,7,8]
l[:] # 取全部元素
[1, 2, 3, 4, 5, 6, 7, 8]
l[::-1] # 逆序
[8, 7, 6, 5, 4, 3, 2, 1]
l[::2] # 取下标为偶数位的元素
[1, 3, 5, 7]
l[1::2] # 下标为奇数位
[2, 4, 6, 8]
l[2:4] # 下标为 [2,4)
[3, 4]
l[:3] # 取前3位,下标为 [0,3)
[1, 2, 3]
l[:100] # 超过数组长度时,尾部截断
[1, 2, 3, 4, 5, 6, 7, 8]
l[100:0] # 起始位置大于长度时,返回空list
[]
l[-3:] # 取后3位,下标为 [n-3,n)
[6, 7, 8]
l[3:] # 下标为 [3,n)
[4, 5, 6, 7, 8]
l[:-3] # 下标为 [0, n-3)
[1, 2, 3, 4, 5]
l[3] # 取下标为3的数
4
l[-3] #l[n-3]=l[5] #取下标为n-3的数
6
l[-1] # 最后一个数,即下标为n-1的数
8
l[2::3] # 每隔3取一个数
[3, 6]
for i in range(3):
    print(l[i:i+3]) # 窗口式读取,每次读3个数,循环3次
[1, 2, 3]
[2, 3, 4]
[3, 4, 5]

修改

l[0] = 'a' #替换l[0]
l
['a', 2, 3, 4, 5, 6, 7, 8]

插入

l[3:3] = 'c' # 在l[3]处插入元素
l
['a', 2, 3, 'c', 4, 5, 6, 7, 8]
l[:0]= 'a' # 头部插入
l
['a', 'a', 2, 3, 'c', 4, 5, 6, 7, 8]
l[len(l):0]= 'x' # 尾部插入
l
['a', 'a', 2, 3, 'c', 4, 5, 6, 7, 8, 'x']

替换

l[:4] = ['e','f'] # 替换,前4位替换为2位
l
['e', 'f', 'c', 4, 5, 6, 7, 8, 'x']
l[-3:] = ['x','y','z'] # 最后3位替换为其他3位
l
['e', 'f', 'c', 4, 5, 6, 'x', 'y', 'z']
l[::2] = [0]*5 # 奇数为置0,间隔替换时,长度需要相等 
l
[0, 'f', 0, 4, 0, 6, 0, 'y', 0]

删除

l[:2] = [] #删除前2位元素
l
[0, 4, 0, 6, 0, 'y', 0]
del l[:2] # 删除前2位元素
l
[0, 6, 0, 'y', 0]
del l[::2] # 删除奇数位元素
l
[6, 'y']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值