今天跟你們分享一下Python裏面tuple數據類型的學習
ps:list數據類型,以前是寫在了jianshu上,暫時我也尚未搬過來,因此貼上連接吧 python
Python數據類型 - list : https://www.jianshu.com/p/5fe...安全
tuple,即元組。是Python內置的一種有序列表。跟list相比,tuple有比較特別的地方。app
那tuple有什麼好處呢?由於不可變,因此代碼更加安全。若是能夠,儘可能用tuple代替list。函數
t = () t # 調用 輸出:()
以下示例,注意比較「t」與「s」的區別,經過type()函數也能夠清楚的看到。學習
>>> t = ('xyz') >>> t 'xyz' >>> type(t) <class 'str'> >>> >>> s = ('abc',) >>> s ('abc',) >>> type(s) <class 'tuple'> >>>
ps:原本貼的圖片,發現不方便看 -_-spa
t = (1,2,'abc') t # 調用 輸出:(1,2,'abc')
>>> t = ('a','b',['c','d']) # tuple裏包含可變的list >>> t [2][0] 'c' >>> t[0][1] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range
>>> t [2][0] = 'C' # 修改tuple中的list類型值 >>> t ('a', 'b', ['C', 'd'])
>>> t[0][0] = 'e' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment
塊一中修改tuple中list的元素,tuple沒有變,變的是list的元素。
tuple一開始指向的list並無改變成別的list,id(list)沒有變化。因此,tuple所謂的「不變」,是說tuple的每一個元素指向永遠不變,可是指向的list內容是可變的。code
>>> h = ('a','b','c') >>> h1 = ('A',) + h[1:] # 用slice方法取得列表的一部分,實際上是從新給對象賦值 >>> h1 ('A', 'b', 'c')
Python中,賦值能夠採用序列賦值的方式,以下對象
>>>a,b = 1,2 >>>a,b >>>(1,2)
python函數返回值是一個tuple類型的值。返回值爲一個時,括號省略;返回值爲多個時,爲同一個tuple接收,並把位置賦給相應的值。
若要返回一個list類型,則顯示用「[]」進行修改。排序
def swap(x,y): return y,x # return [y,x] 或者 return(y,x) >>> swap(2,3) (3, 2)
實際效果以下圖:
教程
判斷元素i是否在tuple_a中,返回True or False。
if i in tuple_a : <action>
經過切片來訪問元組的元素,它的切片操做跟列表list是同樣,也是經過「切片操做符[]」+索引index來訪問。
元組還能夠進行一些比較操做符的操做,好比「>」、「<」、「==」等,跟數學裏同樣,對應元素值跟對應元素值進行比較,返回True或者False。
「大於」和「小於」只能比較同類型的tuple,以下示例:
>>> a = (1,2) >>> b = ('a','b') >>> c = (1,2,3) >>> a > b Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'int' and 'str' >>> >>> a == c False
你們能夠隨意去操做一下,就能清楚了,不算是重點。