python筆記 高階特性 切片

2021-08-20 16:57:11 字數 2895 閱讀 4403

一、應用:取乙個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 ...