Python中序列包括列表list、元組tuple、字符串、Unicode字符串、buffer對象以及xrange對象六種。對於Python中的序列,有一些通用的操作,如下:
(1)索引
序列中的元素都是有編號的,從0開始遞增。我們可以使用sequence[index]的方式訪問序列中第index位置處的元素。注意index可以是正數,也可以是負數。-1表示的最后一個元素,-2表示倒數第二個元素,依次類推。舉例來說:
str = 'beijing'
print str[2] #輸出為i
print 'shanghai'[3] #輸出為n
print 'wuhan'[-2] #輸出a
(2)分片
與使用索引來訪問單個元素類似,可以使用分片操作來訪問一定范圍內的元素,即使用sequence[start:end]來訪問序列中若干元素。關於分片有幾個需要注意的點:
A)使用sequence[start:end]可以獲取到序列中大於等於start,小於end范圍內的元素。注意不包括end所在位置處的元素
B)sequence[start:end]中start和end可以是正數,也可以是負數。-1表示是最后一個元素所對應的索引。
C)sequence[start:end]中start所指的元素要出現在end所指的元素的前面。否則分片的結果是一個空list
D)sequence[start:end]中,若start省略掉,表示從第一個元素開始。若end省略掉,表示分片直到最后一個元素結束。注意end省略,和-1的效果是不一樣的哦,若為-1的話,分片的結果是不包括最后一個元素的。而end省略,是包括最后一個元素的。
E)sequence[start:end:step]可以使用指定的步長step來分片,步長step可以是正數,也可以是負數。如果step是正數,那么分片會從序列的頭部開始向右提取元素。如果step是負數,那么分片會從序列的尾部開始向左提取元素。舉例來說:
elements = [1, 2, 3, 4, 5, 6,7, 8, 9, 10]
print elements[2:4] #輸出[3, 4]
print elements[-3:-1] #輸出[8, 9]
print elements[-3:0] #輸出[],因為-3所指的元素在0所指的元素的后面
print elements[:3] #輸出[1, 2, 3]
print elements[-3:] #輸出[8, 9, 10]
print elements[:] #copy出一個新的elements列表
print elements[-3:-1] #輸出[8, 9]
print elements[0:10:2] #輸出[1, 3, 5, 7, 9]
print elements[10:0:-2] #輸出[10, 8, 6, 4, 2]
(3)加
通過使用加號+可以進行序列的連接操作,舉例來說:
print [1, 2, 3] + [4, 5, 6] #輸出[1, 2, 3, 4, 5, 6]
print 'hello' + 'world' #輸出helloworld
(4)乘
用序列乘以一個數字n會生成一個新的序列,而在新的序列中,原來的序列將被重復n次。舉例來說:
print 'python' *2 #輸出pythonpython
print [2, 3] * 3 #輸出[2, 3, 2, 3, 2, 3]
print [None] * 2 #輸出[None, None]
(5)成員資格判斷
可以使用in操作符,來檢查一個值是否在序列中。舉例來說:
str = 'helloworld'
print 'w' in str #輸出為True
(6)通用的內建函數
一些python內建函數,可以作用於序列。比如len、min以及max等。舉例來說:
elements = [34, 56, 13]
print max(elements)
print min(elements)
print len(elements)
print max(3, 5) #這里並沒有使用序列,注意
print min(3, 7, 2) #這里並沒有使用序列,注意