博主辛苦了,我要打赏银两给博主,犒劳犒劳站长。
【摘要】在 python 中切片并非是列表(list)的特有属性,python 中的有序序列也都支持切片,如元组和字符串。本文会详细的介绍一下 python 切片的基本操作及原理。
切片的完整格式:
object[start_index:end_index:step]
如有一个列表:a = ['a','b','c','d','e','f','g']
step:可正可负,但不能为 0。它的绝对值就是步长,当 step 为正数时,索引方向从左到右,起点 start_index 为 0;当 step 为负数时,索引方向从右到左,起点 start_index 为 -1。step 默认值是 1。如下图所示:
对于元素 a ,它对应的索引分为正索引和负索引,虽然下标一正一负,但指的都是同一个值,即 a[0] = a[-7] => 'a'。
a[:](等价于a[::]):默认 step = 1,索引方向从左到右,此时起点下标默认为最左边的索引,即 0;终点下标为最右边的索引加 1,即 7,等价于 a[0:7:1]
a[::-1]:step = -1,索引方向从右到左,此时起点下标默认为最右边的索引,即 -1;终点下标为最左边的索引减 1,即 -8,等价于 a[-1:-8:-1]
只要索引方向确定下来,那么 start_index 和 end_index 可正可负,只要符合索引方向,就可以得出获得想要的切片段。
例如,当 step = 1 时,a[1:-1:1],a[1:6:1],a[-6:-1:1],a[-6:6:1] 都表示 ['b', 'c', 'd', 'e', 'f'];
当 step = -1 时,a[-2:-5:-1],a[-2:2:-1],a[5:-5:-1],a[5:2:-1] 都表示 ['f', 'e', 'd']。
当然,若确定了索引方向,但是 start_index 与 end_index 并不符合索引方向的话,那么会出现切片为空列表 [] 的情况,如:a[5:1:1],a[-1:1:1] 都会取得 [] ,a[1:5:-1],a[1:-1:-1] 也会取得 [],因为起点和终点下标并不符合索引的方向,所以取得为空。
以上就是关于 python 切片的相关知识点,若说的不够明白,只要看图中的示例即可记住。
tip:
a[:] = a[::] = a[::1] = a[0::1] = a[:len(a):1] = a[0:len(a):1]
a[0] = a[-len(a)]
a[-1] = a[len(a)-1]
a[] 是一种错误的写法;值域是 start_index 为 [(包括边界值) ,end_index 为 )(不包括边界值),即值域为左闭右开区间。
版权归 马富天个人博客 所有
本文标题:《细说 python 切片》
本文链接地址:http://www.mafutian.com/429.html
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^
顶0
踩0
第 2 楼 kjh 2019-09-19 16:54:20 暂无分享
第 1 楼 kjh 2019-09-19 16:54:04 暂无分享
评论审核未开启 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
||