tuple(元組)

另一種有序列表叫元組:tuple 。 tuple 和 list 非常類似,但是 tuple 一旦初始化就不能修改。那麼不能修改是指什麼意思呢?

tuple 不可變是指當你創建了tuple 時候,它就不能改變了,也就是說它也沒有append(),insert() 這樣的方法,但它也有獲取某個索引值的方法,但是不能賦值。那為什麼要有 tuple 呢?那是因為 tuple 是不可變的,所以程式碼比較安全。所以建議能用 tuple 代替 list 就盡量用 tuple 。

1、建立 tuple(元組)

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

tuple1=('两点水','twowter','liangdianshui',123,456)
tuple2='两点水','twowter','liangdianshui',123,456

建立空元組

tuple3=()

元組只包含一個元素時,需要在元素後面加上逗號

tuple4=(123,)

如果不加逗號,創造出來的就不是tuple (元組),而是指123 這個數了,這是因為括號()既可以表示tuple,又可以表示數學公式中的小括號,這就產生了歧義,因此,Python 規定,這種情況下,以小括號計算,計算結果自然是123 。具體看下圖tuple4 和tuple5 的輸出值

bf243cb95eaf948005abb0d83e6a097.png

2、tuple(元組)的索引

元組下標索引從0開始,可以進行截取,組合等。

3、存取tuple (元組)

tuple(元組)可以使用下標索引來存取元組中的值

#-*-coding:utf-8-*-
tuple1=('两点水','twowter','liangdianshui',123,456)
tuple2='两点水','twowter','liangdianshui',123,456
print(tuple1[1])
print(tuple2[0])

輸出的結果:

48ff94816a44ce16f7e3df56c7542a8.png

4、修改tuple (元組)

上面不是花了一大段來說tuple 是不可變的嗎?這裡怎麼又來修改 tuple (元組) 了。那是因為元組中的元素值是不允許修改的,但我們可以對元組進行連接組合,還有透過修改其他清單的值從而影響 tuple 的值。

具體看下面的例子:

#-*-coding:utf-8-*-
list1=[123,456]
tuple1=('两点水','twowater','liangdianshui',list1)
print(tuple1)
list1[0]=789
list1[1]=100
print(tuple1)

輸出的結果:

('两点水', 'twowater', 'liangdianshui', [123, 456])
('两点水', 'twowater', 'liangdianshui', [789, 100])

可以看到,兩次輸出的 tuple 值是改變了的。我們看看 tuple1 的儲存是怎樣的。

修改tuple流程圖

可以看到,tuple1 有四個元素,最後一個元素是一個List ,List 清單裡有兩個元素,當我們把List 清單中的兩個元素124 和456 修改為789 和100 的時候,從輸出來的tuple1 的值來看,好像確實是改變了,但其實變的不是tuple 的元素,而是list 的元素。 tuple 一開始指向的 list 並沒有改成別的 list,所以,tuple 所謂的「不變」是說,tuple 的每個元素,指向永遠不變。注意是 tupe1 中的第四個元素還是指向原來的 list ,是沒有變的。

5、刪除 tuple (元組)

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

#-*-coding:utf-8-*-
tuple1=('两点水','twowter','liangdianshui',[123,456])
print(tuple1)
del tuple1

6、tuple (元組)運算子

#與字串一樣,元組之間可以使用號碼和* 號來運算。這意味著他們可以組合和複製,運算後會產生一個新的元組。

5accbab73a1eaa35b4c8b5f7c9fb8d4.png

7、元組內建函數

fbf38e362db6330097b606315b122f2.png

#
繼續學習
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!