標籤:
元組和列表是近親,列表允許並且提供了方法來改變它的值,但元組是不可改變的,即不允許你改變它的值----這也是它沒有方法的部分原因。
元組的主要作用是作為參數傳遞給函數調用、或是從函數調用那裡獲得參數時,保護其內容不被外部介面修改。
元組在前台的用武之地不大,但是在後台卻是使用得相當頻繁的。
一個例子說明元組:
>>> a = ("one", "two")
>>> a[0]
‘one‘
>>> b = ("just-one")
>>> b[0]
‘j‘
>>> c = ("just-one", )
>>> c[0]
‘just-one‘
>>> d = "just-one",
>>> d[0]
‘just-one‘
元組是由逗號決定的,而不是小括弧。所以b在這裡只是一個字串而已,這就是為什麼b[0]返回的是字串中的第一個字母。而小括弧的最後一個逗號則決定了那是一個元組,所以c[0]返回的正是我們希望的結果。我們甚至可以整個去掉小括弧,就像上面例子中的d一樣----雖然通常這樣做不太好。Python的宗旨之一就是盡量顯式地表達意思而不要依賴於預設行為。
內建序列函數和工廠函數
str:(可列印)字串表示
list:列表表示
tuple:元組表示
len:對象的勢
max:序列中“最大的”對象
range:給定範圍內可迭代的數字
sorted:返回排好序的列表
sum:列表值加和(數字)
any:是不是有元素為True?
zip:返回Ngen元組的迭代器,其中每個元組包含了N個序列裡對應的元素
@雖然以上很多函數的描述都標為序列,但是實際上這些函數都可以用在所有“可迭代”對象上。這裡說的可迭代對象是指任何類似序列的資料結構,只要它可迭代就行,比如序列、迭代器、產生器、字典的索引值和檔案裡的行等。
@zip函數接受多個序列,然後將每個序列對應位置的元素組織在一起組成一個新的元組,最後返回由這些元組組成的列表。它地長度由參數序列中最短的長度決定。舉個簡單的例子:
>>> zip([1, 2, 3], ("a", "b", "c"))
[(1, ‘a‘), (2, ‘b‘), (3, ‘c‘)]
Python: 元組的基本用法