元組和我們之前講過的數字,字串和列表一樣,也是 python 中的一種物件型別,它和列表比較想象,所以一般會被忽略掉,但是由於其特殊性,在實際應用的時候又很容易犯錯。
首先我們來看乙個例子:
>>> a = 'abc'
>>> a
'abc'
>>> b = 'def',123,[1,2,3]
>>> b
('def', 123, [1, 2, 3])
>>> type(a)
'str'>
>>> type(b) #type是檢視物件型別的函式
'tuple'>
複製**
從上面的例子中很容易看出 a 是字串,但是看 b ,這樣輸入竟然沒有報錯,而且把結果放到了乙個圓括號裡,這就是 python 的與眾不同之處,這個帶括號的物件,就是我們今天要講的新的物件型別:元組 ( tuple ) 。
元組是用圓括號括起來的,元素與元素之間用英文的逗號隔開,從上面的例子中我們也可以看出,元組也是序列,這個跟字串和列表類似。但是元組中的元素不能更改,和字串類似;但是元組裡的元素又可以是任意的物件型別,這個跟列表相似,所以我們姑且可以認為元組是部分字串屬性和部分列表屬性的並集。
既然元組也是列表,那麼它跟字串和列表的基本操作相仿,每個元素理應有自己對應的索引,並且可切片。
>>> str = (1,2,'234',(1,2),['c','c++','python'])
>>> str[2]
'234'
>>> str[4]
['c', 'c++', 'python']
>>> str[4][2]
'python'
複製**
關於序列的操作在元組上的操作在這裡就不一一展示了,之前的文章寫過,有興趣的可以自己嘗試一下,忘記的可以點下面的文章。
零基礎學習 python 之字串
零基礎學習 python 之列表
當然了,因為元組是不可修改的,所以在列表裡面所以關於可以修改列表的方法在這裡都是無效的。那麼元組這類型別的物件有哪些方法呢?還記得之前我們說過的 dir() 嗎?dir(tuple) 就可以知道了(下面**可以右拉)。
>>> dir(tuple)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
複製**
雖然元組不可修改,但是元組和列表是可以互相轉化的,可以用 list() 和 tuple() 實現。
>>> a = ('a','123',[1,2,3])
>>> type(a)
'tuple'>
>>> a = list(a)
>>> type(a)
'list'>
>>> a = tuple(a)
>>> type(a)
'tuple'>
複製**
還有一點需要提醒的是,當元組中只有乙個元素的時候,要在元素的後面跟上英文的逗號,要不然 python 會誤會你想表達的意思,請看下面的例子。
>>> str1 = ('rocky',)
>>> type(str1)
'tuple'>
>>> str2 = ('rocky')
>>> type(str2)
'str'>
複製**
因為元組比較簡單,所以到這裡基本上就結束了。其實看完元組以後,很多人會有乙個疑惑,那就是元組有什麼用呢?既然只是字串和元組部分功能的並集,那麼我們只用列表和字串就好了呀,還學什麼元組?在很多時候確實只需要字串和列表就可以解決很多問題,但是不要忘了我們的計算機是用來處理複雜問題的,就比如我們說的話一樣,有些詞不常用但是它就是不可替代的,我們照樣要在某些特定的場景下使用它。
就拿元組的其中乙個好的地方來說,在字典中,元組可以作為字典的 key ,但是列表就不可以,因為字典的 key 是不可變的。至於什麼是字典,也是一種物件,我在之後會講到。
Python零基礎之元組,字典,集合
tup print type tup tup 1 print type tup tup1 0,print type tup1 tup 1,2,3,4,5print type tup a,b,c,d,e tup print a,b,c,d,e tup 1,2,3,4,5a,b,c tup d,e,f ...
零基礎學習 Python 之字典
相信大家對字典並不陌生吧,學生時代一塊塊的大小 磚頭 還記得怎麼用吧?先從索引查詢,不管是拼音還是偏旁部首,通過索引查到相應的內容,這樣就不需要我們從頭一頁一頁的找,這種方法可以很快的找到目標。正是基於這種需求,python 裡有了一種 dictionary 的物件型別,翻譯過來就是 字典 用 di...
小甲魚python零基礎入門 學習筆記 元組
簡單來說 元組就是不能修改值的列表,即不可變的列表。如果需要儲存的一組值在程式的整個生命週期內不變,可使用元組。元組與列表在 上的區別 元組的定義用 型別是tuple 列表的定義用,型別是list name list peter william jack tom alice jim type nam...