Python順序集合之 tuple

2022-09-17 03:06:08 字數 1698 閱讀 4775

慕課網《python 入門》學習筆記

1、tuple特性

tuple是另一種有序的列表,中文翻譯為「 元組 」。tuple 和 list 非常類似,但是,tuple一旦建立完畢,就不能修改了。

>>> t = ('adam', 'lisa', 'bart')
建立tuple和建立list唯一不同之處是用( )替代了[ ]

現在,這個

獲取 tuple 元素的方式和 list 是一模一樣的,可以正常使用 t[0],t[-1]等索引方式訪問元素,但是不能賦值成別的元素。

>>> t[0] = 'paul'
traceback (most recent call last):
file "", line 1, in
typeerror: 'tuple' object does not support item assignment
2、建立單元素tuple

包含 0 個元素的 tuple,也就是空tuple,直接用 ()表示:

>>> t = ()
>>> print t
()
建立包含1個元素的 tuple 呢?來試試:

>>> t = (1)
>>> print t
1
因為()
既可以表示tuple,又可以作為括號表示運算時的優先順序,結果 (1) 被python直譯器計算出結果 1,導致我們得到的不是tuple,而是整數 1。

正是因為用()定義單元素的tuple有歧義,所以 python 規定,單元素 tuple 要多加乙個逗號「,」,這樣就避免了歧義:

>>> t = (1,)
>>> print t
(1,)
python在列印單元素tuple時,也自動新增了乙個「,」,為了更明確地告訴你這是乙個tuple。

3、"可變」的tuple

tuple也是「可變」的,如:

>>> t = ('a', 'b', ['a', 'b'])
注意到 t 有 3 個元素:'a','b'和乙個list:['a', 'b']。list作為乙個整體是tuple的第3個元素。list物件可以通過 t[2] 拿到:

>>> l = t[2]
然後,我們把list的兩個元素改一改:

>>> l[0] = 'x'
>>> l[1] = 'y'
再看看tuple的內容:

>>> print t
('a', 'b', ['x', 'y'])

表面上看,tuple的元素確實變了,但其實變的不是 tuple 的元素,而是list的元素。

tuple一開始指向的list並沒有改成別的list,所以,tuple所謂的「不變」是說,tuple的每個元素,指向永遠不變。即指向'a',就不能改成指向'b',指向乙個list,就不能改成指向其他物件,但指向的這個list本身是可變的!

理解了「指向不變」後,要建立乙個內容也不變的tuple怎麼做?那就必須保證tuple的每乙個元素本身也不能變。

Python語言基礎(四) list與tuple

python內建列表list,list是乙個有序列表 寫起來感覺很爽 這裡有乙個很有意思的東西 li 1 代表的是li列表最後乙個元素,依次類推li 2 是第二個,li 3 是第三個,只要不超出列表的長度,可以在負數上進行索引,很奇妙 list刪除末尾元素使用pop方法,刪除指定索引位置的元素使用p...

Python教程五 使用list和tuple

使用list和tuple list是一種有序的集合,可以隨時新增和刪除元素。list 形式 len 取讀list元素的個數 classmate m e r classmate m e r len classmate 3用索引來訪問list中每乙個位置的元素,索引是從0開始 classmate 0 m...

python學習日記三List和Tuple型別

分別為list和tuple。我們可以用list和tuple來表示有序集合。接下來我們分別講一下list和tuple的組成。list是python的一種內建資料型別,是一種有序的集合,可以隨時進行增加和刪減其中的元素。list的構造 用 將list中的元素括起來,就是乙個list物件,通常會將list...