python入門 第8章 切片

2021-07-25 14:05:06 字數 1653 閱讀 3333

1、對list進行切片

小結如下:切面最多可以有三個引數,引數之間使用:來分開,

如果第乙個引數不寫,表示從第乙個元素開始,

如果第二個引數不寫,表示到最後乙個元素

如果第乙個引數和第二個引數都寫了,那麼取值的時候從索引為第乙個引數開始,到第二個引數索引之間取值,不包含第二個索引對應的值

如果第三個引數為n,表示每隔n-1個數取乙個值

切片的第乙個引數是開始的索引,第二個引數是結束的索引,但是不包含這個索引值,第三個引數為n時表示每隔n-1個取值

取乙個list的部分元素是非常常見的操作。比如,乙個list如下:

l = [『adam』, 『lisa』, 『bart』, 『paul』]

取前3個元素,應該怎麼做?

l[0:3]

[『adam』, 『lisa』, 『bart』]

l[0:3]表示,從索引0開始取,直到索引3為止,但不包括索引3。

如果第乙個索引是0,還可以省略:

l[:3]

[『adam』, 『lisa』, 『bart』]

也可以從索引1開始,取出2個元素出來:

l[1:3]

[『lisa』, 『bart』]

只用乙個 : ,表示從頭到尾:

l[:]

[『adam』, 『lisa』, 『bart』, 『paul』]

因此,l[:]實際上複製出了乙個新list。

切片操作還可以指定第三個引數:

l[::2]

[『adam』, 『bart』]

第三個引數表示每n個取乙個,上面的 l[::2] 會每兩個元素取出乙個來,也就是隔乙個取乙個。

把list換成tuple,切片操作完全相同,只是切片的結果也變成了tuple。

2、倒序切片

對於list,既然python支援l[-1]取倒數第乙個元素,那麼它同樣支援倒數切片,試試:

l = [『adam』, 『lisa』, 『bart』, 『paul』]

l[-2:]

[『bart』, 『paul』]

l[:-2]

[『adam』, 『lisa』]

l[-3:-1]

[『lisa』, 『bart』]

l[-4:-1:2]

[『adam』, 『bart』]

記住倒數第乙個元素的索引是-1。倒序切片包含起始索引,不包含結束索引。

3、對字串切片

字串 『***』和 unicode字串 u』***』也可以看成是一種list,每個元素就是乙個字元。因此,字串也可以用切片操作,只是操作結果仍是字串:

『abcdefg』[:3]

『abc』

『abcdefg』[-3:]

『efg』

『abcdefg』[::2]

『aceg』

在很多程式語言中,針對字串提供了很多各種擷取函式,其實目的就是對字串切片。python沒有針對字串的擷取函式,只需要切片乙個操作就可以完成,非常簡單。

Python入門 第8章 函式

此系列文章的創作初衷是作為讀書過程中的筆記,而非教程類文章。def greet print hello def greetuser name print hello,name.title def greet 顯示簡單的問候語 print hello 乙個良好的 編寫習慣是,在每個函式頭後都用文件字串...

python入門 第10章 列表生成式

1 生成列表 要生成list 1,2,3,4,5,6,7,8,9,10 我們可以用range 1,11 range 1,11 1,2,3,4,5,6,7,8,9,10 但如果要生成 1x1,2x2,3x3,10x10 怎麼做?方法一是迴圈 l for x in range 1,11 l 1,4,9,...

python入門 第10章 列表生成式

1 生成列表 要生成list 1,2,3,4,5,6,7,8,9,10 我們可以用range 1,11 range 1,11 1,2,3,4,5,6,7,8,9,10 但如果要生成 1x1,2x2,3x3,10x10 怎麼做?方法一是迴圈 l for x in range 1,11 l 1,4,9,...