元組的不可修改
1.元組是一系列的值。這些值可以是任意類型的,並且用整數序號作為索引,其實元組和列表非常相似,二者間重要的區別就是:元組不可修改。
元組的語法是一系列用逗號分隔的值:
>>> t = 'a', 'b', 'c', 'd'
通常都用一對圓括號把元組的元素包括起來,這樣看起來比較規范,但沒有硬性要求。
>>> t = ('a', 'b', 'c', 'd')
要建立一個單個元素構成的元組,必須要在結尾加上逗號:
>>> type(t1)
<class 'tuple'>
不加逗號結尾,就不是元組:
>>> t1 = 'a'
>>> type(t1)
<class 'str'> #如果不加逗號結尾,就是定義的字符類型str。
只用括號放一個值,也是字符str,而不是元組:
>>> t1 = ('a')
>>> type(t1)
<class 'str'>
2.另一種建立元組的方法是使用內置函數tuple。不提供參數的情況下,默認就建立一個空的元組。
>>> t2 = tuple()
>>> t2
()
如果參數為一個序列(比如字符串、列表或者元組),結果就會得到一個以該序列元素組成的元組:
>>> t3 = tuple('apple')
>>> t3
('a', 'p', 'p', 'l', 'e')
從上例可以看到,tuple已經是Python內置函數了,不能用來自定義函數了。
3.列表的各種運算符也基本適用於元組,方括號可以用來索引元素:
>>> t3
('a', 'p', 'p', 'l', 'e')
>>> t3[0]
'a'
>>> t3[1]
'p'
切片運算符也可以用於選取某一區間的元素:
>>> t3[1:2]
('p',)
>>> t3[1:3]
('p', 'p')
>>> t3[1:4]
('p', 'p', 'l')
>>> t3[1:5]
('p', 'p', 'l', 'e')
4.但如果你想修改元組中的某個元素,就會提示類型錯誤了,因為元組是不能修改的,你不能修改其中的元素。
>>> t3[0] = 'J'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
但是,我們可以用另一個元組來替換已有的元組。
>>> t4 = ('J',) + t3[1:]
>>> t4
('J', 'p', 'p', 'l', 'e') #這里把a替換成了J
上面這個語句建立了一個新的元組('J', 'p', 'p', 'l', 'e') ,然后讓 t4 指向了這個新的元組。
5.關系運算符也適用於元組和其它序列;Python 從每個元素的首個元素開始對比。如果相等,就對比下一個元素,依此類推,直到找到不同元素為止:
>>> (0, 1, 2) < (0, 3, 4)
True
>>> (0, 1, 200) < (0, 3, 4)
True
>>> (0, 1, 200) > (0, 3, 4)
False
結束。
