1. 程式人生 > >Python資料型別:元組

Python資料型別:元組

資料型別:元組

元組可以看做不可變的列表,它有列表的大多數特點。元組常量用圓括號表示,例如,(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第一版