Python有6種內建的序列,包括:列表、元組、字符串、Unicode字符串、buffer對象和xrange對象。其中最為常用的是Python的列表和元組。
Python在操作一組數據時,通常是用序列來表示這組信息。(序列也可以包含其他序列)
Python還有一種叫做容器的數據結構。容器是包含其他對象的任意對象。序列(如元組和列表)和映射(比如字典)就是兩類主要的容器。
序列的每個元素有自己的編號(元組可以作為字典的鍵名),而映射的每個元素則有一個自己的名字(鍵)。另外還有種容器類型既不是序列也不是映射,叫做集合。
所有序列類型的數據結構都可以進行某些特定的操作,如;索引 、分片 、加 、乘 和檢查每個元素是否屬於序列的成員(成員資格 )。
序列的所有元素都有自己的編號,從0開始,通過編號訪問即為索引。
>>>indexing = 'python'
>>>indexing[1]
'y'
>>>indexing[-1]
'n'
或者字符串直接索引
>>>'python'[0]
'p'
使用索引是用來訪問單個元素,而使用分片操作是用來訪問一定范圍內的元素。分片是通過冒號相隔的兩個索引來實現。
>>>sliceing = '<a href="http://sjolzy.cn/">python</a>'
>>>sliceing[9:26]
'http://sjolzy.cn/'
>>>num= [1,2,3,4,5,6]
>>>num[3:6]
[4, 5, 6]
>>>num[-3:-1]
[4, 5]
>>>num[-3:]
[4, 5, 6]
>>>num[:]
[1,2,3,4,5,6]
分片有個隱式的設置:步長。上面的步長都為1。
比如:
>>>num= [1,2,3,4,5,6]
>>>num[3:6:1] #這邊是個隱藏的步長1
[4, 5, 6]
>>>num[3:6:2] #步長改為2
[4, 6]
通過加號來進行序列的連接操作。
>>>[1,2]+[3,4]
[1,2,3,4]
>>>[1,2]+'python'
TypeError: can only concatenate list (not "str") to list
#報錯了,相同類型的序列才能進行連接操作。
用數字x乘以一個序列得到新的序列,新的序列為原來的序列重復x次。
>>>[1] * 3
[1, 1, 1]
要檢查一個值是否在序列中,可以使用in運算符。返回的是布爾值。
>>>per = 'python'
>>>'py' in per
True
注:in是區分大小寫的。