python元組簡介

2021-07-12 02:06:26 字數 2125 閱讀 4534

初學者經常會將元組(tuple)和列表(list)混淆,他們的形式看起來也有些接近,只是tuple用圓括號,而list使用方括號。

>>> t = (1, 1)

>>> l = [1, 1]

>>> type

(t)>>> type

(l)

# 空元祖

>>> ()

()#常規初始化

>>> (1, 2)

(1, 2)

#不用括號,直接逗號連線,也表示元組

>>>

1, 2

(1, 2)

這裡需要注意的是單個元素元組的初始化,如果乙個包含元素為數字1的元組,如果直接使用(1)來初始化,這種表示方法是錯誤的,python解析器會認為這是乙個數字1。

>>> a = (1)

>>> type

(a)

要表示單個元素的元組,只需要在元素後加上乙個逗號即可,加不加括號都沒關係。

>>> a = 1,

>>> type

(a)>>> b = ("s",)

>>> type

(b)

使用for語句進行元組遍歷。

t = (5, 4, 3, 2, 1)

for i in t:

print i

元組的分片還是元組。

>>> t = (5, 4, 3, 2, 1)

>>> t[0:1]

(5,)

>>> a = 1, 

>>> b = 2,

>>> a + b

(1, 2)

元組之間的比較,是將元組之間的元素逐一比較,有點類似於字串的比較。如有tuple1何tuple2兩個元組比較,其實是分別比較tuple1[index]和tuple2[index],index從0一直增加,直到比較結果不為相等,或者index到了某個元組的長度大小。

>>> a = (1, 2)

>>> b = (1, 2)

>>> a == b

true

>>> b = (1, 3)

>>> a < b

true

>>> b = (1, 2, 3)

>>> a < b

true

元組的不可變性是指元組在初始化後,其值就不會再改變。那麼,在「元組相加」章節的情況如何解釋呢?a += b這樣的操作,其實是新建立了乙個元組,該元組的值就是a和b元組的所有資料,再講該新元組賦值給a。也就是說,相加之前和之後的a元組是兩個不同的物件。**為證:

>>> a = 1,

>>> b = 2,

>>> id(a)

139943685752464

>>> a += b

>>> a

(1, 2)

>>> id(a)

139943685608800

如上**,雖然,都是元組a,卻完全是兩個不同的物件。這點,和字串也是非常相似。

>>> a = 1, 2

>>> s = str(a)

>>> s

'(1, 2)'

>>> tuple(s)

('(', '1', ',', ' ', '2', ')')

>>> tuple(eval(s))

(1, 2)

元組轉字串,直接使用str函式即可。但是,該字串想再轉回元組,而不能直接使用tuple函式,因為tuple函式的形參是乙個列表list。所以上述**中tuple(s),其實是先將s轉成了列表,所以就會出現上面的問題。要想實現這樣的轉化,需要在字串前加上eval函式

直接使用tuple函式和list函式即可。

>>> tuple([1, 2])

(1, 2)

>>> list((1, 2))

[1, 2]

不可變性

可以作為dict的鍵值

可以作為函式的返回值

python中元組的簡介

t 1,2.3,true,star print t print type t 執行結果為 1,2.3,true,star t1 1,2,3 4 print t1 執行結果為 1,2,3,4 4 t2 hello print type t2 執行結果為 allowusers root westos r...

python 元組, 元組應用

元組可以存放不同型別的資料 元組中的資料不能被修改 如果元組中有列表,可以修改列表中的資料 語法 變數 資料1,資料2,資料3,型別是 my tuple isaac 18 3.14 true print my tuple print type my tuple 控制台輸出 isaac 18 3.14...

python元組型別說法 Python 元組型別

一 元組簡介 1 元組用中括號 來定義,比如 tuple 1,2,3,4 2 元組中的元素索引值從 0 開始,元組支援索引和切片操作,且元組元素支援多種型別 3 數字 字串 元組都是不可變型別,這意味著一旦乙個物件被定義了,它的值就不能再被更新,除非重新建立乙個新的物件 二 元組的基本操作 1 建立...