1. 程式人生 > >Python3 元組Tuple(十二)

Python3 元組Tuple(十二)

列表 line lis 定義 class err int 內置 mod

元組:tuple。tuple和list非常類似,但是tuple一旦初始化就不能修改

元組使用小括號,列表使用方括號

元組創建很簡單,只需要在括號中添加元素,並使用逗號隔開即可。

如下實例:

1 tup1 = (Google, Runoob, 1997, 2000);
2 tup2 = (1, 2, 3, 4, 5 );
3 tup3 = "a", "b", "c", "d";

創建空元組:

1 tup1 = ();

註意:元組中只包含一個元素時,需要在元素後面添加逗號,否則括號會被當作運算符使用

1 >>> tup1 = (50)
2 >>> type(tup1)     #
不加逗號,類型為整型 3 <class int> 4 5 >>> tup1 = (50,) 6 >>> type(tup1) # 加上逗號,類型為元組 7 <class tuple>

元組與字符串類似,下標索引從0開始,可以進行截取,組合等。

來看一個“可變的”tuple:

1 >>> t = (a, b, [A, B])
2 >>> t[2][0] = X
3 >>> t[2][1] = Y
4 >>> t
5 (
a, b, [X, Y])

不是說tuple一旦定義後就不可變了嗎?怎麽後來又變了?

表面上看,tuple的元素確實變了,但其實變的不是tuple的元素,而是list的元素。tuple一開始指向的list並沒有改成別的list,所以,tuple所謂的“不變”是說,tuple的每個元素,指向永遠不變。即指向‘a‘,就不能改成指向‘b‘,指向一個list,就不能改成指向其他對象,但指向的這個list本身是可變的!

理解了“指向不變”後,要創建一個內容也不變的tuple怎麽做?那就必須保證tuple的每一個元素本身也不能變

訪問元組

元組可以使用下標索引來訪問元組中的值,如下實例:

1 #!/usr/bin/python3
2 
3 tup1 = (Google, Runoob, 1997, 2000)
4 tup2 = (1, 2, 3, 4, 5, 6, 7 )
5 
6 print ("tup1[0]: ", tup1[0])
7 print ("tup2[1:5]: ", tup2[1:5])

以上實例輸出結果:

1 tup1[0]:  Google
2 tup2[1:5]:  (2, 3, 4, 5)

修改元組

元組中的元素值是不允許修改的,但我們可以對元組進行連接組合,如下實例:

 1 #!/usr/bin/python3
 2 
 3 tup1 = (12, 34.56);
 4 tup2 = (abc, xyz)
 5 
 6 # 以下修改元組元素操作是非法的。
 7 # tup1[0] = 100
 8 
 9 # 創建一個新的元組
10 tup3 = tup1 + tup2;
11 print (tup3)

以上實例輸出結果:

1 (12, 34.56, abc, xyz)

刪除元組

元組中的元素值是不允許刪除的,但我們可以使用del語句來刪除整個元組,如下實例:

1 #!/usr/bin/python3
2 
3 tup = (Google, Runoob, 1997, 2000)
4 
5 print (tup)
6 del tup;
7 print ("刪除後的元組 tup : ")
8 print (tup)

以上實例元組被刪除後,輸出變量會有異常信息,輸出如下所示:

1 刪除後的元組 tup : 
2 Traceback (most recent call last):
3   File "test.py", line 8, in <module>
4     print (tup)
5 NameError: name tup is not defined

元組運算符

與字符串一樣,元組之間可以使用 + 號和 * 號進行運算。這就意味著他們可以組合和復制,運算後會生成一個新的元組。

技術分享

元組索引,截取

因為元組也是一個序列,所以我們可以訪問元組中的指定位置的元素,也可以截取索引中的一段元素,如下所示:

元組:

1 L = (Google, Taobao, Runoob)

技術分享

運行實例如下:

1 >>> L = (Google, Taobao, Runoob)
2 >>> L[2]
3 Runoob
4 >>> L[-2]
5 Taobao
6 >>> L[1:]
7 (Taobao, Runoob)

元組內置函數

Python元組包含了以下內置函數

技術分享

技術分享

Python3 元組Tuple(十二)