取乙個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 ...