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的數據