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,...