定義乙個空切片 第五章(第1節) 切片

2021-10-16 02:30:09 字數 2387 閱讀 8180

比如我們取乙個有序集合 list 型別的變數 l 的前 2 個元素做為乙個集合,可以用[l[0],l[1]]這種方法,如果要取前 n 個元素,但是 n 很大,我們就需要乙個個列出來或者用迴圈操作等,這樣就會可讀性差或者操作麻煩等等。

python 提供了取有序集合(str,list,tuple 或支援通過下標訪問的自定義物件)子集的語法,就是切片。

l = [1, "hello", "byebye", "birdpython"]

print l[0:2] # [1, "hello"]

l = [1, "hello", "byebye", "birdpython"]

print l[1:2] # ["hello"]

l = [1, "hello", "byebye", "birdpython"]

print l[:2] # [1, "hello"]

l = [1, "hello", "byebye", "birdpython"]

print l[1:] # 從索引 1 開始到最後乙個索引,結果為:["hello", "byebye", "birdpython"]

print l[:] # 從索引 0 開始到最後乙個索引,結果為:[1, "hello", "byebye", "birdpython"]

l = [1, "hello", "byebye"]

print(l[-1])

print(l[-2])

print(l[-3])

l = [1, "hello", "byebye"]

print(l[0:-1]) # [1, "hello"]

print(l[-3:2]) # [1, "hello"]

print(l[-3:-1]) # [1, "hello"]

print(l[0:2]) # [1, "hello"]

l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

print(l[0:11:2])

l = [1, "hello", "byebye"]

print(l[len(l):-(len(l) + 1):-1])

print(l[-1::-1])

print(l[::-1])

l = [1, "hello", "byebye"]

print(l[3:8]) #

print(l[2:0]) #

l = [1, "hello", "byebye"]

print(l[0:len(l)]) # [1, "hello", "byebye"]

print(l[0:8]) # [1, "hello", "byebye"]

l = [1, "hello", "byebye"]

newl = l[0:2]

print(l)

print(newl)

對於以下**,執行一下看下結果,想想為什麼?

strone = "hello"

strthree = "hell"

strtwo = strone[:4]

strfour = strone[:]

print(strtwo)

print(strthree)

print(id(strtwo))

print(id(strthree))

print(strone)

print(strfour)

print(id(strone))

print(id(strfour))

print(id(strone[1]))

print(id(strtwo[1]))

print(id(strthree[1]))

print(id(strfour[1]))

切片​www.birdpython.com

第五章 1 使用流 篩選和切片

中間操作filter,比如找出熱量大於400的菜品形成乙個列表 listheightdishnamedishs menu.parallelstream filter d1 d1.getcalories 400 熱量大於40 collect collectors.tolist 形成乙個list 中間操...

golang 定義乙個空切片 go語言切片用法詳解

1.定義 切片在go語言的原始碼定義如下所示,由於其資料結構中有指向底層陣列的指標,所以切片是一種引用型別。src runtime slice.go type slice struct s1 array 0 4 s2 array 4 s3 array 2 fmt.println s1 0 1 2 3...

第五章 物件導向的程式設計風格(定義乙個抽象基類)

5.4定義乙個抽象基類 本節將重新定義前一節的num sequence class.我要為所有數列設計出共享的抽象基類,然後繼承它。這該如何做到呢?定義抽象基類的第乙個步驟就是找出所有子類共通的操作行為。舉個列子,所有數列類的共通操作行為是什麼呢?這些操作行為代表的是num sequence這個基類...