python的標準類型如字串(str)、表(list)、元組(tuple)都是序列類型,
但又各有不同:
I 元素類型不同:表和元組可以以任何物件為元素, 而字串物件的元素只能是字元;
II 建立後是否可以修改:分為可變(mutable)與不變(immutable)兩種類型。 表list是可變類型, 字串str與元組tuple是不變類型;
python把list、tuple、str歸類為序列類型,
不僅因為它們的一些共用性質,
還因為它們都定義了一批公共操作。
下表的一組操作由所有序列類型所共用,
不論其可變與否。
s、t 表示序列;
x 表示物件;
n 表示自然數(從0開始的非整數);
i、j 表示整數下標;1x in ss有元素等於x則結果為True, 否則為False2s not in ss有元素等於x則結果為False,
上表的補充說明:
1 s.index方法描述中的[]表示可選, 也就是說, 這個方法有三種可用形式:
1.1 s.index(x)返回x在s中第一次出現的下標;
1.2 s.index(x,i)中的i表示從i開始查找;
1.3 s.index(x,i,j)中的i,j表示查找的範圍;
2 操作符in和not in, 對於字串類型, 檢查x是否為s的子序列;而對於其他序列, 則是檢查是否是序列的元素;
3 下標i和j是負值時表示要求從後向前確定匹配的位置;
4 對於切片操作, 其中的i、j、k都可以省略, 但 冒號必須保留;i的缺省值是0, j的缺省值是序列的長度,
5 對表list的操作(拼接、拷貝拼接和切片)的結果是list, tuple操作的結果還是tuple;
上表的操作實例↓
(關於可變序列的操作請見後續文章:python3.5|可變(mutable)序列列表list支援的操作及簡單實例)
附源碼:
s = (1,1,2,3,5,8,13,21,34,55)
t = (89,144,233)
str = 'This is a test of python'
n = 3
x = 8
print(x in s)
print(x not in s)
s2 = s + t
print(s2)
print(t * n)
'''
True
False
(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233)
(89, 144, 233, 89, 144, 233, 89, 144, 233)
'''
print(s[n])
s3 = s2[3:6]
print(s3)
s4 = s2[3::3]
print(s4)
'''
3
(3, 5, 8)
(3, 13, 55, 233)
'''
print(len(s2))
print(min(s2))
print(max(s2))
print(s2.count(1))
print(str.count('t'))
'''
13
1
233
2
3
'''
print(s2.index(55))
print(s2.index(1))
print(s2.index(1,1))
print(str.index('is',3))
'''
9
0
1
5
'''
# s5 = s.copy() # tuple沒有copy屬性
# s5 = str.copy() # str沒有copy屬性
-End-