天天看點

python3之元組(tuple)

python3中元組(tuple)在定義長度後不可修改,删除、新增。隻能檢視

>>> a = ('a', 'b', 'c')
>>> a
('a', 'b', 'c')
           

檢視元組長度

>>> len(a)

           

要定義一個隻有1個元素的tuple,如果你這麼定義:

>>> t = ()
>>> t

           

定義的不是tuple,是1這個數!這是因為括号()既可以表示tuple,又可以表示數學公式中的小括号,這就産生了歧義,是以,Python規定,這種情況下,按小括号進行計算,計算結果自然是1。

是以,隻有1個元素的tuple定義時必須加一個逗号,,來消除歧義:

>>> t = (,)
>>> t
(,)
           

Python在顯示隻有1個元素的tuple時,也會加一個逗号,,以免你誤解成數學計算意義上的括号。

可變的tuple

>>> t = ('a', 'b', 'c', ['1', '2'])
>>> t
('a', 'b', 'c', ['1', '2'])
>>> t[][] = 'x'
>>> t
('a', 'b', 'c', ['x', '2'])
>>> t[].append('z')
>>> t
('a', 'b', 'c', ['x', '2', 'z'])
>>> t[][-]
'z'
           

其實變的不是tuple元素,而是tuple中的list元素。

是以要建立一個内容也不變的tuple,那就必須保證tuple的每一個元素本身也不能變。

list和tuple是Python内置的有序集合,一個可變,一個不可變。根據需要來選擇使用它們。