一、應用:取乙個list或tuple的部分元素
二、對list進行連續切片操作
初始值:比如定義乙個list並賦值如下:
>>> l = ['michael', 'sarah', 'tracy', 'bob', 'jack']
3.1直接輸出l
>>> l[:]
l = ['michael', 'sarah', 'tracy', 'bob', 'jack']
3.1正數切片(從前面開始取元素)
3.1.1取前三個元素
1、l[0:3] 2、l[:3] 兩者等價,因為如果第乙個索引為0的話可以省略
執行:
>>> l[:3]
['michael', 'sarah', 'tracy']
3.2.1從索引1開始,取出2個元素來
l[1:3]
執行:
>>> l[1:3]
['sarah', 'tracy']
3.3倒數切片(從後面取元素)
3.3.1取倒數兩個元素
l[-2:] 注意:此處不能畫蛇添足寫為l[-2 : 0]
執行:
>>> l[-2:]
['bob', 'jack']
3.3.2取倒數第二個元素
l[-2 : -1]
執行:
>>> l[-2:-1]
['bob']
四、對list進行間隔切片操作
初始值:以0-99的數列為例,對其進行操作,建立如下
>>> l = list(range(100))
>>> l
[0, 1, 2, 3, ..., 99]
4.1前10個數,每兩個取乙個
l[:10:2]
執行:
>>>l[ : 10 : 2]
[0, 2, 4, 6, 8]
4.2所有數,每5個取乙個
l[ : : 2]
執行:
>>>l[ : :2]
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]
五、對tuple切片操作
tuple也是一種list,唯一的區別是tuple是不可變物件,因此tuple也可以進行切片操作,只是切片完成後仍然是tuple
初始值:定義乙個tuple為:
以0-99的數列為例,對其進行操作,建立如下
>>> l = tuple(range(100))
>>> l
(0, 1, 2, 3, ..., 99)
5.1和list進行的是一樣的操作
對tuple的前50個數里每隔4個數進行取值切片
t[ : 50 : 4]
執行:
>>>t[ : 50 : 4]
(0,5,10,15,20,25,30,35,40,45)
六、對字串進行切片
6.1、取字串前三個元素
>>> 'abcdefg'[:3]
'abc'
6.2、在字串中每隔兩個元素取一次元素
>>> 'abcdefg'[::2]
'aceg'
七、cmd下舉例子展示:
7.1對list進行切片
7.2對tuple進行切片
7.3對字串進行切片
八、練習
利用切片操作,實現乙個trim()函式,去除字串首尾的空格,注意不要呼叫str的strip()方法:
if len(s)==0:
return s
while s[:1]==' ':
s=s[1:]
while s[-1:]==' ':
s=s[:-1]
return s
測試用例:
# 測試:
if trim('hello ') != 'hello':
print('測試失敗!')
elif trim(' hello') != 'hello':
print('測試失敗!')
elif trim(' hello ') != 'hello':
print('測試失敗!')
elif trim(' hello world ') != 'hello world':
print('測試失敗!')
elif trim('') != '':
print('測試失敗!')
elif trim(' ') != '':
print('測試失敗!')
else:
print('測試成功!')
九、補充
情況:[-4::-1] 、[:-4:-1]、[4::-1]
Pyhon筆記 Python高階特性 切片
當取指定索引範圍的操作,便會用到切片 目前可用於list tuple或者字串 用切片的方法提取前三個元素 l fy maybe xnove ame chalice l2 l 0 3 等同於 l 0 l 1 l 2 print l2 輸出結果 fy maybe xnove 切片提取元素類似於數學中左閉...
Python 高階特性 切片
在list,string 中取部分元素的操作是十分常見的 如下list list 1,2,qwe 3,asd list 1,2,qwe 3,asd 想要取中間三個元素,要怎麼做?笨方法 1 直接利用索引取值 list 1 list 2 list 3 2,qwe 3 如果有100個元素或者1000元素...
Python高階特性 切片 Slice
如何在乙個陣列中取特定的一組資料?是乙個個指定?l range 10 l 0,1,2,3,4,5,6,7,8,9 l 0 0 l 1 l 2 l 3 1,2,3 資料少還行,要是資料多呢?迴圈怎麼樣?l range 10 l 0,1,2,3,4,5,6,7,8,9 for i in range 3 ...