应用场景
列表均分、列表抽样、删除某类下标的元素 等情形
如删除List奇数下标
[1,2,3,4] 👉 👉👉 [1,3]
方法一:切片
一个完整的切片表达式包含两个“:”,
用于分隔三个参数(start_index、end_index、step)正负数均可,
当只有一个“:”时,默认第三个参数step=1。
切片操作基本表达式:object[start_index : end_index : step]
step:其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。
当step省略时,默认为1,即从左往右以增量1取值。
start_index:表示起始索引(包含该索引本身);该参数省略,表示从对象“端点”开始取值,至于是从“起点”还是从“终点”开始,则由step参数的正负决定,step为正从“起点”开始,为负从“终点”开始。
end_index:表示终止索引(不包含该索引本身);该参数省略,表示一直取到数据”端点“,至于是到”起点“还是到”终点“,同样由step参数的正负决定,step为正时直到”终点“,为负时直到”起点“。
l = [1,2,3,4]
l = l[::2]
表示隔一个取一个
本质上是创建一个新list容器
方法二:倒序删除
解决正序删除时下标变化问题
需要注意的是list.pop()参数才是下标
list.remove()为对象
for i in range(len(l)-1,-1,-2):
l.pop(i)
方法三:del直接删除
简单明了,不创建新的副本
del l[1::2]