列表切片
切片
定义:切片就像切面包一样,可以同时取出多个元素
切片语法:正着切(从左往右)
注:切片的特性是顾头不顾尾,end-1是实现取出的值
name[start:end]
1.示例如下:
name = ["xialiang", "zhuguiling","xichenxi","zhuyongpei","zhangsan"]
print(name[1:4])
输出结果:['zhuguiling','xichenxi','zhuyongpei'] #顾头不顾尾,即打印出的会包含下标为1的索引,不会包含下表为4的索引,所以打印出下标为1到3的值
2.如果列表中数据太多了,想从前面取,然后取到后面的值
示例如下:
name = ["xialiang", "zhuguiling","xichenxi","zhuyongpei","zhangsan"]
print(name[1:-1]) #取列表中下标为1到-1的值,从后往前数为-1、-2、-3····
输出结果:['zhuguiling', 'xichenxi', 'zhuyongpei'] #下标为1的所有则为‘zhuguiling’,下标为-1则为‘zhangsan’(顾头不顾尾则后面的-1不取,取-2的值)
3.如果必须要取最后的一个值,语法则是:name[start:];如果从最前面的值取到所需要的值,则是:name[:end]
示例如下:
name = ["xialiang", "zhuguiling","xichenxi","zhuyongpei","zhangsan"]
print(name[1:]) #后面所要取的值就不写,表示从下标为1的索引开始取值,一直取到最后一个值
输出结果:['zhuguiling', 'xichenxi', 'zhuyongpei', 'zhangsan']
切片语法:倒着切
注:倒着切片其实还是从左往右,但是不能从最后面取值,需要从右往左数索引,然后左边写右边的索引
示例如下:
name = ["xialiang", "zhuguiling","xichenxi","zhuyongpei","zhangsan"]
print(name[-5:-1]) #从右往左数下表索引-5为‘xialiang’,-1为‘zhangsan’(顾头不顾尾,则不取出负1的值),如果写pirint(name[-1:-5]),则取出为[]
输出结果:['xialiang', 'zhuguiling', 'xichenxi', 'zhuyongpei']
步长
定义:步长简称步子的长度,意思就是原来是一步一步的走路,现在变为一次走2步、3步、4步····
语法为:name[star:end:1] #表示为一步一步的走
name[star:end:2] #表示为一次走两步,后面的一次走3步、4步等等都一样
示例1(一步一步走):
name = ["xialiang", "zhuguiling","xichenxi","zhuyongpei","zhangsan"]
print(name[0:3:1]) #从下标为0的索引开始取值,取到下标为3的值(顾头不顾尾,不取3的值),1表示一步一步的走
输出结果:['xialiang', 'zhuguiling', 'xichenxi']
示例2(一次走两步):
name = ["xialiang", "zhuguiling","xichenxi","zhuyongpei","zhangsan"]
print(name[0::2]) #从下标为0的索引开始取值,取到最后一个值(记住顾头不顾尾,如果后面写的为索引,这取索引的前一个值,如果没有写则去后面的全部),2表示一次走两步
输出结果:['xialiang', 'xichenxi', 'zhangsan'] #输出的结果就会从所取的下标索引开始取值,中间跳过一个值,然后又取下一个值,然后在跳过,在取值(表示一次走了两步)
如何实现真正的倒着取值(这时需要用到步长)
语法:name[-star:-end:-1],如果后面为-2或-3或-4·····则表示倒着取值,并且一次走两步、三步、四步····,与上面步长的使用一样
示例如下:
name = ["xialiang", "zhuguiling","xichenxi","zhuyongpei","zhangsan"]
print(name[-1:-5:-1]) #表示从下标索引为-1的开始取值‘zhangsan’一直取到下标索引为-5的值‘xialiang’(记住顾头不顾尾,所以-5的值不取,取前面一个值则是-4‘zhuguiling’),-1表示从后往前(即从右往左)取值
输出结果为:['zhangsan', 'zhuyongpei', 'xichenxi', 'zhuguiling']
浙公网安备 33010602011771号