Python資料型別:元組
阿新 • • 發佈:2019-02-02
元組可以看做不可變的列表,它有列表的大多數特點。元組常量用圓括號表示,例如,(1,2)、('a','b','abc')都是元組。
元組特點
元組的主要特點如下:
-
元組可包含任意型別的物件。
-
元組是有序的。元組中的物件可通過位置進行索引和分片。
-
元組的大小不能改變,既不能為元組新增物件,也不能刪除元組中的物件。
-
元組中的物件也不能改變。
-
與列表類似,元組中儲存的是物件的引用,而不是物件本身。
元組的基本操作
元組的基本操作包括建立元組、求長度、合併、重複、迭代、關係判斷、索引、分片和矩陣等。
1、建立元組
可用元組常量或tuple()方法來建立元組。例如:
>>>()#建立空的元組物件 () >>> tuple()#建立空的元組物件 () >>> (2,)#包含一個物件的元組,這裡的逗號不能少 (2,) >>> (1,2,5,'abc,',[1,2])#包含不同型別物件的元組 (1, 2, 5, 'abc,', [1, 2]) >>> 1,2,5,'abc',[1,2]#元組常量可以省略括號 (1, 2, 5, 'abc', [1, 2]) >>> (1,2,('a','b'))#元組中可以巢狀元組 (1, 2, ('a', 'b')) >>>tuple('abcd')#用字串建立元組,可迭代物件均可用於建立元組 ('a', 'b', 'c', 'd') >>> tuple([1,2,3])#用列表建立元組 (1, 2, 3) >>> tuple(x*2 for x in range(5))#用解析結構建立元組 (0, 2, 4, 6, 8) >>>
2、求長度
len()函式可用於獲得元組長度。例如:
>>> len((1,2,3,4)) 4 >>>
3、合併
加法運算可用於合併多個元組。例如:
>>> (1,2)+('ab','cd')+(2.45,) (1, 2, 'ab', 'cd', 2.45) >>>
4、重複
乘法運算可用於合併多個重複的元組。例如:
>>> (1,2)*3 (1, 2, 1, 2, 1, 2) >>>
5、迭代
可用於迭代遍歷元組中的哥哥物件。例如:
>>> for x in (1,2,5,'abc',[1,2]):print(x) ... 1 2 5 abc [1, 2] >>>
6、關係判斷
in操作符可用於判斷物件是否屬於元組。例如:
>>> 2 in (1,2) True >>> 5 in (1,2) False >>>
7、索引和分片
可通過位置對元組物件進行索引和分片。例如:
>>> x=tuple(range(10)) >>> x (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) >>> x[1] 1 >>> x[-1] 9 >>> x[2:5] (2, 3, 4) >>> x[2:] (2, 3, 4, 5, 6, 7, 8, 9) >>> x[:5] (0, 1, 2, 3, 4) >>> x[1:7:2] (1, 3, 5) >>> x[7:1:2] () >>> x[7:1:-2] (7, 5, 3) >>>
8、矩陣
與列表相似,可用過巢狀的方式用元組來表示不可變的矩陣。例如:
>>> x=((1,2,3),(4,5,6),(7,8,9,))#巢狀三個子元組 >>> len(x)#元組長度為3,子元組為一個物件 3 >>> x[0] (1, 2, 3) >>> x[0][1] 2 >>>
元組方法
元組物件支援兩個方法:count()和index()。
1、count()方法
count()方法用於返回指定值在元組出現的次數。例如:
>>> x=(1,2)*3 >>> x (1, 2, 1, 2, 1, 2) >>> x.count(1)#返回1在元組中出現的次數 3 >>> x.count(3)#元組不包含指定值時,返回0 0 >>>
2、index(value,[start,[end]])方法
index()方法用於在元組中查詢指定值,魏永start和end指定範圍時,返回指定值在元組中第一次出現的位置;指定範圍時,返回在指定範圍內第一次出現的位置。例如:
>>> x=(1,2,3)*3 >>> x (1, 2, 3, 1, 2, 3, 1, 2, 3) >>> x.index(2)#預設查詢全部元組 1 >>> x.index(2,2)#從偏移量2到元組末尾查詢(省略end表示到末尾) 4 >>> x.index(2,2,7)#在範圍[2:7]內查詢,依然是左閉右開區間(python中的區間一般都是左閉右開) 4 >>> x.index(5)#如果元組不包含指定的值,則出錯 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: tuple.index(x): x not in tuple >>>
轉載於《Python 3 基礎教程》-鄧英 夏幫貴 主編 2016-10第一版