序列是一塊用來存放多個值的連續記憶體空間。Python中常用的序列結構有:字元串、清單、元組等。
所有序列類型都可以進行某些操作,這些操作被稱為通用序列操作。這些操作包括:索引、分片、加、乘以及檢查某個元素是否屬于序列的成員。除此之外,還有計算序列長度、找出最大元素和最小元素等。
字元串,由字元組成的序列。
序列中的所有元素都可以索引(下标)來通路,從左往右,第一個元素的索引為0,第二個為1,依此類推到最後一位。索引還可以取負值,從右往左,最後一個元素的索引為-1,倒數第二個為-2,依此類推。
通路格式為:<code>變量名[索引]</code>。
最後得到的結果是:
上述代碼定義了一個變量str,裡面存放了一個字元串<code>python</code>。str[0],也就是通路下标為0的元素,即<code>p</code>。str[-1],通路索引為-1的元素,即<code>n</code>。
分片與索引類似,都可以獲得序列中的元素,差別是索引隻能擷取單個元素,而分片可以獲得一定範圍内的元素。
分片通過冒号隔開的兩個索引來實作,其文法是:
<code>slice[start:end:step]</code>
其中,slice表示序列,start表示起始索引,end表示結束索引(不包含結束位本身),step表示步長(預設為1,不能為0)。
假設str = 'abcdefg',下面描述分片擷取元素的幾種情況:
分片方式
描述
結果
strs[1:]
擷取strs中從索引為1開始到最後一個的所有元素
'bcdefg'
strs[:3]
擷取strs中從索引0到索引3(不包含索引為3的元素)之間所有元素
'abc'
strs[1:3]
擷取strs中從索引1到索引3(不包含索引為3的元素)之間所有元素
'bc'
strs[:-1]
擷取strs中從索引0開始到最後一個元素(不包含最後一個元素)之間的所有元素
'abcdef'
strs[-3:-1]
擷取strs中從索引-3開始到最後一個元素(不包含最後一個元素)的所有元素
'ef'
strs[-3:]
擷取strs中最後三個元素
'efg'
strs[:]
擷取strs中所有元素
'abcdefg'
tips(提示):
1.省略“start”起始索引,表示從序列中的第一個元素開始。
2.省略“end”結束索引,表示到序列的最後一個元素結束。
省略開始和結束索引,代表的是所有元素,如果步長設定為2,那麼就會通路所有元素中每隔兩個步長得到的元素。
上述代碼得到的結果為<code>'aceg'</code>。
python中規定步長不能設定為0,但可以設定為負數。當步長為負數時,分片索引的開始點必須大于結束點,即分片從右往左提取元素。
上述代碼得到的結果是:
注意:上述代碼需要注意觀察start索引和end索引為正和為負兩種情況!
序列可以使用加法操作進行連接配接。
結果:<code>Hello,World</code>
結果:<code>[1,2,3,4,5,6]</code>
tips:隻有兩種相同類型的序列才能進行連接配接操作!
使用數字n乘以一個序列會生成新的序列,在新的序列中,原來的序列将被重複n次。
結果:<code>hellohellohello</code>
tips:當輸入連續相同的字元時,可使用序列的乘法運算進行實作。
序列有3個非常好用的内建函數:len()、min()、max()函數。其參數都為序列名,其中len()函數傳回序列中所包含元素的個數;min()函數和max()函數則分别傳回序列中最小和最大的元素。
結果:
tips:通用序列操作還包括成員運算符“in”和“not in”。