python切片
切片:list变量[值下标:结束值下标] 什么意思呢?
就是获取 list中 下标从定义的位置开始获取数据到 自定义的下标位置结束, 但是切片有个规矩就是顾头不顾尾,
举个例子
kl = ["OPPO","VIVO","IPHONE","LEVOVO"]
print(kl[0:1])
结果:['OPPO']
如果我取list里面的OPPO,VIVO 那就得结束下标多+1 : 说白了就是切片的时候顾头不顾尾 从填写的下标开始取值, 到结束的下标, 但是结束的下标即使填写了也不会取到,只会取到结束下标前面的值
kl = ["OPPO","VIVO","IPHONE","LEVOVO"]
print(kl[0:2])
结果:['OPPO', 'VIVO']
如果我从 下标1 开始取后面的全部值
kl = ["OPPO","VIVO","IPHONE","LEVOVO"]
print(kl[0:])
结果:['OPPO', 'VIVO', 'IPHONE', 'LEVOVO']
从起始位置下标开始取到最后全部的值,下标*:不填写
如果我想从list中的倒数第二个数据开始取值, 取到最后面的全部的值
kl = ["OPPO","VIVO","IPHONE","LEVOVO"]
print(kl[-2:])
结果:['IPHONE', 'LEVOVO']
因为 -号代表 倒数第几个下标, 从倒数第二个开始取:取全部, 切片是从左往右取值的
我还可以这样:
kl = ["OPPO","VIVO","IPHONE","LEVOVO"]
print(kl[:])
结果:['OPPO', 'VIVO', 'IPHONE', 'LEVOVO']
因为:开始切片下标不填代表从0开始去全部的值,结束不填写, 也是取全部的值
接下来就是切片步长
这个步长和range(0,10,2) 的步长是一样的
代码:
kl = ["OPPO","VIVO","IPHONE","LEVOVO"]
print(kl[1::2])
结果:['VIVO', 'LEVOVO']
因为:从下标1的数据开始取值,取后面全部的值, 并且取值的时候设置了步长,取值的时候跳着取,跳2个下标
可以这样理解:开始的时候下标是1 设置的步长是2 那么就是, 去下标是1 的数据, 还会去 1+步长(2) =3 那么会取下标是3 的数据,再往后就是结果3+步长(2)=5,系统会取下标是5 的数据, 在往后的话就是结果5+步长(2) =7 系统就会取下标是7的数据