Python語言中對list tuple的切片操作

2021-09-26 23:26:25 字數 1687 閱讀 8619

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

>>

> l =

['michael'

,'sarah'

,'tracy'

,'bob'

,'jack'

]

取指定索引範圍的操作,用迴圈十分繁瑣,因此,python提供了切片(slice)操作符,能大大簡化這種操作。

取前3個元素,用一行**就可以完成切片:

>>

> l[0:

3]['michael'

,'sarah'

,'tracy'

]

l[0:3]表示,從索引0開始取,直到索引3為止,但不包括索引3。即索引0,1,2,正好是3個元素。

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

>>

> l[:3

]['michael'

,'sarah'

,'tracy'

]

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

>>

> l[1:

3]['sarah'

,'tracy'

]

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

>>

> l[-2

:]['bob'

,'jack'

]>>

> l[-2

:-1]

['bob'

]

記住倒數第乙個元素的索引是-1。

切片操作十分有用。我們先建立乙個0-999的數列:

**

# _*_ coding: utf-8 _*_

l=list

(range

(1000))

print

(l)print

(l[1

:100])

print

(l[0:1

])**

甚至什麼都不寫,只寫[:]就可以原樣複製乙個list:

>>

> l[:]

[0,1

,2,3

,...

,999

]

tuple也是一種list,唯一區別是tuple不可變。因此,tuple也可以用切片操作,只是操作的結果仍是tuple:

>>

>(0

,1,2

,3,4

,5)[

:3](

0,1,

2)

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

>>

>

'abcdefg'[:

3]'abc'

>>

>

'abcdefg'[:

:2]'aceg'

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

C語言中對程式執行計時

使用time 函式。它在標頭檔案time.h中 具體使用方法如下 time t a,b time t是表示時間的結構體,你可以在time.h中找到它的原型。a time null 表示獲取當前的機器時間。段b time null 表示獲取當前的機器時間。a是 段執行前的時間,b是 段執行後的時間 單...

對c語言中 和 的了解

剛剛還是再鑽研資料結構的時候意識到這個小符號帶來的困擾,確實讓我查了幾十個網頁,因為之前沒有學過c 對 的了解一直在獲得變數位址的這一方面。剛剛敲了幾行 才真正看出傳值的蹊蹺,下面是 include include void add int p int main 結果輸出 20 10 include...

C語言中對const的理解

const的作用是限定乙個變數不能被修改。對const的理解 1 int const a const int b 這兩句是相等的。2 const char p1 char const p2 const char const p3 第一句的意思是指標p1所指向的記憶體空間不能被修改,如 p1 1 a ...