序列——列表和元組
Python包含6種內建的序列:列表、元組、字符串、Unicode字符串、buffer對象和xrange對象。
1、列表和元組的主要區別在與,列表可以修改,元組則不能。
列表如下例所示:
>>> edward=[‘Edward Gumby‘,42]
>>> database=[[‘Edward Gumby‘,42],[‘Allen‘,22]]
2、通用序列操作
所有序列類型都可以進行某些特定的操作。這些操作包括:索引(indexing)、分片(slicing)、加(adding)、乘(multiplying)以及檢查某個元素是否屬於序列的成員。除此之外,Python還有計算序列長度,找出最大元素和最小元素的內建函數。
①索引
序列中的所有元素都是有編號的,從0開始遞增。這些元素可以通過編號分別訪問,如下例所示:
>>> greeting=‘Hello‘
>>>greeting=[0]
‘H‘
>>>greeting=[-1]
‘o‘
②分片
與使用索引來訪問單個元素類似,可以使用分片操作來訪問一定範圍內的元素。
示例:
>>> tag=‘<a href="http://www.python.org">Python web site</a>‘
>>>tag[9:30] #從第10個字符截取到第30個字符
‘http://www.python.org‘
>>>tag[32:-4]
‘Python web site‘
分片操作對於提取序列的一部分是很有用的。第一個索引是要提取的第一個元素的編號,而最後的索引則是分片之後剩余部分的第1個元素的編號。簡而言之,分片操作的實現需要提供兩個索引作為邊界,第一個索引的元素是包含在分片內的,而第2個則不包含在分片內。
#分片實例,分片和索引一樣都是從0開始遞增 >>>number=[1,2,3,4,5,6,7,8,9,10] >>>number[3:6] [4,5,6] >>>number[0:1] [1] #假設需要訪問最後幾個元素,那麽可以: >>>number[7:13]#最後一個索引超出邊界的方式 [8,9,10] >>>number[7:]#第二個索引不提供則任務取到最後 [8,9,10] #如果想獲取最後3個元素,但是不知道倒數第三個元素的索引,可以這樣取: >>>number[-3:] [8,9,10] #但是不可以: >>>number[-3:0] [] #但是取前3個元素可以這樣: >>>number[0:3] [1,2,3]#或者 >>>number[:3] [1,2,3]
#分片還有另外一個參數:步長 >>>number[0:10:1] [1,2,3,4,5,6,7,8,9,10] >>>number[0:10:2] [1,3,5,7,9] >>>number[::4] [1,5,9] #步長不可以是0,但是可以是負數 >>>number[8:3:-1] [9,8,7,6,5] >>>number[10:0:-2] [10,8,6,4,2] >>>number[0:10:-2] [] >>>number[::-2] [10,8,6,4,2] >>>number[:5:-2] [10,8] >>>number[5::-2 [6,4,2]
序列——列表和元組