一、基本语法
二、切片
1.a[i:j]
2.a[i:j:k]
总结:[-1] [:-1] [::-1] [n::-1]
前言
在python中,序列是python最基本的数据结构,包括有string,list,tuple等数据类型,切片对序列型对象的一种索引方法,其中每个元素都有对应的位置值,具有正向递增(从0开始),反向递减(-1开始)的属性,根据此可以进行普通索引或切片索引。普通索引只取出列中一个下标对应的元素,而切片索引取出序列中一个范围对应的元素。本文主要讲对序列对象的切片索引。
一、基本语法
操作符 描述
a[i] 普通索引,返回序列 a 中第 i 个元素,i为序号
a[i:j] 切片,得到 a 序列中序号从 i 到 j(不包括 j )范围元素。
当 i 缺省时,默认为0
当 j 缺省时,默认为len(a)
当 i,j 均缺省时,默认为全部
a[i:j:k] 切片, 返回序列 a 中从序号 i 到 j (不包括 j ),以k为步长的元素子序列。
k>0,步长自左而右(正序);i 缺省时,默认为0,j 缺省时,默认为len(a)
k<0,步长自右而左(倒序);i 缺省时,默认为-1,j 缺省时,默认为-len(a)-1
二、切片
1.a[i:j]
[1:3]:取第二、三个元素。
a=[10,20,30,40,50]
a[1:3]
#输出:[20, 30]
[1:-1]:取第二个到倒数第二个元素。
a=[10,20,30,40,50]
a[1:-1]
#输出:[20, 30, 40]
[-3:-1]:取倒数第三到倒数第二个元素。
a=[10,20,30,40,50]
a[-3:-1]
#输出:[30, 40]
i,j 缺省
[:-1]:取第一个到倒数第二个元素。
a=[10,20,30,40,50]
a[:-1]
#输出:[10, 20, 30, 40]
[-1:]:j 缺省,为5,取最后一个元素。
a=[10,20,30,40,50]
a[-1:]
#输出:[50]
[3:]:j 缺省,为5,取第四个到最后一个元素。
a=[10,20,30,40,50]
a[3:]
#输出:[40, 50]
[:]:取出全部元素。
a=[10,20,30,40,50]
a[:]
#输出:[10, 20, 30, 40, 50]
2.a[i:j:k]
[1:5:2]:从左往右,步长2,范围从第二个元素开始到最后一个元素。
a=[10,20,30,40,50]
a[1:5:2]
#输出:[20, 40]
[-5:-2:2]:从左往右,步长2,范围从第一个元素开始到倒数第二个元素。
a=[10,20,30,40,50]
a[-5:-2:2]
#输出:[10, 30]
[-1:-6:-2]:从右往左,步长2,范围从最后一个元素开始到第一个元素。
a=[10,20,30,40,50]
a[-1:-6:-2]
#输出:[50, 30, 10]
i,j,k 缺省情况
[ : : ]:i 默认为1,j 默认为5,k 默认为1,从左往右,取全部。
a=[10,20,30,40,50]
a[::]
#输出:[10, 20, 30, 40, 50]
[1: :2]:j 默认为5,从左往右,步长2,范围从第二个元素开始到最后一个元素。
a=[10,20,30,40,50]
a[1::2]
#输出:[20, 40]
[ :4:2]:i 默认为0,从左往右,步长2,范围从第一个元素开始到第四个元素。
a=[10,20,30,40,50]
a[ :4:2]
#输出:[10, 30]
[ : : -1]:i 默认为-1,j 默认为-6,从右往左,取全部,其实就是倒序。
a=[10,20,30,40,50]
a[::-1]
#输出:[50, 40, 30, 20, 10]
[-1: :-2]:k<0,j 默认为-6,从右往左,步长2,范围从最后一个元素开始到第一个元素。
a=[10,20,30,40,50]
a[-1::-2]
#输出:[50, 30, 10]
[ :-5:-2]:k<0,i 默认为-1,即从右往左,步长2,范围从最后一个元素开始到第二个元素。
a=[10,20,30,40,50]
a[:-5:-2]
#输出:[50, 30]
总结:[-1] [:-1] [::-1] [n::-1]
[-1]:获取最后一个元素;
[:-1]:除了最后一个元素,获取其他所有的元素;
[::-1]:对第一个到最后一个元素进行倒序之后取出;
[n::-1]:对第一个到第n个元素进行倒序后取出。