sequence 是 python 的一種內建型別(built-in type),內建型別就是構建在 python interpreter 裡面的型別,幾個基本的 sequence type 比如 list(表),tuple(定值表,或翻譯為元組),range(範圍)可以看作是 python interpreter 定義了這樣三個 class。
序列有著相同的訪問模式:它的每乙個元素都可以通過指定乙個偏移量的方式得到,而要想一次得到多個元素,我們可以使用切片,下表偏移量從0開始,總元素數減1結束。
python 在操作一組資料時,通常是用序列來表示這組資訊。(序列也可以包含其他序列)
python還有一種叫做容器的資料結構。容器是包含其他物件的任意物件。序列(如元組和列表)和對映(比如字典)就是兩類主要的容器。序列的每個元素有自己的編號(元組可以作為字典的鍵名),而對映的每個元素則有乙個自己的名字(鍵)。另外還有種容器型別既不是序列也不是對映,叫做集合。
通用的序列操作
所有序列型別的資料結構都可以進行某些特定的操作,如;索引 、分片 、加 、乘 和檢查每個元素是否屬於序列的成員(成員資格 )。序列型別的操作符如下:
1. 索引
序列的所有元素都有自己的編號,從0開始,通過編號訪問即為索引。
>>>indexing = 'python'
>>>indexing[1]
'y'>>>indexing[-1]
'n'或者字串直接索引
>>>'python'[0]
'p'2. 切片操作符([,]/[:]/[::]) / 分片
使用索引是用來訪問單個元素,而使用分片操作是用來訪問一定範圍內的元素。分片是通過冒號相隔的兩個索引來實現。
>>> sliceing = 'python'
>>> sliceing[9:33]
''>>>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]
3. 連線操作符(+) / 序列相加
通過加號來進行序列的連線操作。
有幾個要注意的地方:
型別必須相同;
返回乙個新序列;
並不推薦(效率不高);
與join()、extend()之間的比較;
>>>[1,2]+[3,4]
[1,2,3,4]
>>>[1,2]+'python'
typeerror: can only concatenate list (not "str") to list
#報錯了,相同型別的序列才能進行連線操作。
4. 重複操作符 / 乘法
用數字x乘以乙個序列得到新的序列,新的序列為原來的序列重複x次。
>>>[1] * 3
[1, 1, 1]
再比如:
>>> str="abc"
>>> str*4
'abcabcabcabc'
注意:執行copy,建立新序列;
序列後面是1個*;
*後面必須是整型;
該操作符返回乙個新的包含多份原物件copy的物件。
5. 成員資格 (檢測元素是否屬於序列的成員)
要檢查乙個值是否在序列中,可以使用in運算子。返回的是布林值。
>>>per = 'python'
>>>'py' in per
true
python通用序列操作 python序列的使用
序列之通用操作 pytho中,最基本的資料結構就是序列。什麼是序列 numbers 1,2,3,4,5,6,7,8,9,0 greeting u hello,world names alice tom ben john python內建序列種類 共有6種 列表,元組,字串,unicode字串,buf...
序列通用操作及可變序列通用操作
以下部分擷取自雨辰的教學 天下為公 print range 5 print list range 5 print x print name names tom jerry mike peter john scores 99 88 76.3 90.5 77 print mike in names 判定...
Python基礎 通用序列操作
python 繼續 python包含6種內建的序列,各自是 列表 元組 字串 unicode字串 buffer物件和xrange物件。我們將逐步進行介紹。今天主要介紹一下通用序列操作。放之四海而皆準。1 索引 全部程式猿都知道,索引下標從零開始。python也是這樣,索引0指向序列中第乙個元素。可是...