美文网首页
slice函数

slice函数

作者: 小赤焰 | 来源:发表于2018-04-02 14:26 被阅读0次

python的切片函数挺特别的。在此记录一下。

函数原型:

 slice(stop)
 slice(start, end[, step])

函数可以用在 list tuple string 上。

用法

构造一个list

>>>l = range(100)

步长为正

简写下 正向取值,start是0可以省略,end是末尾可以省略,步长默认是1

取全部的的数,

>>>l[slice(0, len(l))]
>>>l[:]

从0到50每两个数取一个数,0可以省略

>>>l[slice(0, 50, 2)]
>>>l[0:50:2]
>>>l[:50:2]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48]

从30到list末尾

>>>l[slice(30, len(l))]
>>>l(30:)
[30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

slice函数不会造成下标越界

>>>l[slice(30, len(l)+30)]
>>>l(30:len(l)+30)
[30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

倒数取值

>>>l[slice(-5, -1)]
>>>l[-5:-1]
[95, 96, 97, 98]
>>>l[slice(-len(l), -1)]
>>>l[:-1]
#全部的数

步长为负数的情况

步长为负数其实是将取得的list反转。

简写下 正向取值,start是头部可以省略,end是0可以省略
反向取值,start是0可以省略,end是尾部可以省略

正向取值加负数步长

>>>l[slice(40, 20, -1)]
>>>l[40:20:-1]
[40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21]

反向取值加负数步长

>>>l[slice(-20, -40, -1)]
>>>l[-20:-40:-1]
[80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61]

总结

通常情况下,都会用简写来表达。不习惯的时候尽量不要省略参数,别给自己找trouble。
步长为正,start < end,结果正向排列。
步长为负,start > end,结果反向排列。

相关文章

  • go 数组和切片slice那些事儿

    目录 数组数组概念数组的初始化 切片slice概念slice创建slice追加slice拼接问题slice作为函数...

  • 字符串截取

    Js:函数:slice() 功能:arrayObject.slice(start,end) start:必需。规定...

  • slice函数

    python的切片函数挺特别的。在此记录一下。 函数原型: 函数可以用在 list tuple string 上。...

  • golang append函数破坏原有slice数据

    append函数破坏原有slice数据 先从slice添加元素开始 假设往整数slice指定位置添加元素,例如: ...

  • 双人扑克-技术文档(3)11.12-11.18.md

    js对象的复制 js字符串截取函数slice()、substring()、substr() 相关属性:slice(...

  • Go语言常用内置函数

    一、copy函数该函数主要是切片(slice)的拷贝,不支持数组将第二个slice里的元素拷贝到第一个slice里...

  • golang append

    append属于内置函数,用于 slice 的元素添加操作。 slice在操作时需要注意:slice底层指向一个数...

  • golang slice 简单排序

    sort包中有sort.Slice函数专门用于slice的排序,使用极简单方便 输出 after sort:[1 ...

  • js截取函数对比

    截取函数有:split()、slice()、substr()、substring()、charAt()、charC...

  • JS 数组的内置函数

    Array 的内置函数:find、findIndex、slice、join、indexOf、includes、is...

网友评论

      本文标题:slice函数

      本文链接:https://www.haomeiwen.com/subject/hhithftx.html