python元組及其周邊

2021-08-19 16:11:18 字數 3026 閱讀 5963

一、元組的建立

1、用都好分割,切記()不是必須

2、用tuple()建立。內接字串、列表、元組,將會建立乙個包含序列內元素的元組。但是要是接乙個字典的話,那麼tuple只認識字典的鍵,這一點切記。

二、元組其實和列表很像,都是用整數值作為索引,但是最大的不同之處,便是元組是不可變的,而列表是可變的。

三、元組的賦值

與傳統需要中間變數不同,元組賦值一氣呵成:

a,b = b,a
這樣便能改變兩者的值

四、元組作為返回值

理論上返回值只能有乙個,但是元組介入的話,那就不僅僅只有乙個了。

五、可變長度引數元組

比如乙個函式的形參不是固定的個數的話,就可以使用元組的形式。函式可以接受可變數量的引數。 以 「*」 開頭的形參將輸入的引數 

匯集到乙個元組中。

def printall(*args):

print(args)

相當於args是乙個元組,當然你可以隨意命名元組的名字,但是一般用args。

這裡的定義為 匯集,當然還有拆分。

比如divmod這個函式,接受兩個變數,返回值為這兩個書的商和餘數。(你可以依次賦值給兩個變數,或者僅僅賦值給乙個變數,此時這個變數為乙個元組)

>>> t = (7, 3)

>>> divmod(t)

typeerror: divmod expected 2 arguments, got 1

此時怎麼辦,還是用到*這個玩意兒。

>>> divmod(*t)

(2, 1)
總結五,只有元組才有可變引數長度的功能吧。此時無論是匯集還是拆分都得用到*呢,切記。

典型的可變引數長度的函式有 max() min(),但是sum()不是。你試試便知。

六、列表和元組

zip是乙個內建函式,可以接受將兩個或多個序列組,並返回乙個元組列表, 其中每個元組包含了各個序列中相對位置的乙個元素。如果各個序列長度不一,以最短的為準。且這個zip物件是乙個可迭代的物件。

說到這裡,其實迭代器和列表也是很像,只不過你不能通過整數值去訪問迭代物件的值。

所以按照常理來說,迭代器轉化為列表也很容易

list(zip(list1,tuple2))
最精彩的來了:

對於元組列表,你可以使用元組賦值來迴圈

t = [('a', 0), ('b', 1), ('c', 2)]

for letter, number in t:

print(number, letter)

如果將zipfor迴圈和元組賦值結合起來使用,你會得到乙個可以同時遍歷兩個(甚至多個)序列的慣用法。 例如,has_match接受兩個序列t1t2, 如果存在索引it1[i]

==t2[i],則返回true

def

has_match(t1

,t2):forx,

yinzip(t1,

t2):ifx

==y:return

true

return

false

如果需要遍歷乙個序列的元素以及其索引號,您可以使用內建函式enumerate

for

index

,element

inenumerate

('abc'

):print

(index

,element

)

enumerate的返回結果是乙個列舉物件(enumerate object),可迭代乙個包含若干個對的序列; 每個對包含了(從0開始計數)的索引和給定序列中的對應元素。 在這個例子中,輸出結果是:

0a1

b2c

和前乙個示例的結果一樣。

七、字典和元組

關鍵方法為items。它是字典的乙個方法,返回多個元組組成的序列,其中每個元組的元素為乙個鍵值對。和上面的zip後類似,它也是乙個迭代器,可以利用元組來進行賦值。

>>> for key, value in d.items():

... print(key, value)

...c 2

a 0b 1

下面一句話,將列表、字典和元組結合起來使用:

你可以講元組列表很容易變成字典。

>>> t = [('a', 0), ('c', 2), ('b', 1)]

>>> d = dict(t)

>>> d

所以用zip和dict很容易便會生成乙個字典

>>> d = dict(zip('abc', range(3)))

>>> d

在字典中使用元組作為鍵(主要因為無法使用列表)的做法很常見。 例如,乙個**簿可能會基於使用者的姓-名對,來對映至號碼。 假設我們已經定義了lastfirstnumber三個變數, 我們可以這樣實現對映:

directory

[last

,first]=

number

方括號中的表示式是乙個元組。我們可以通過元組賦值來遍歷這個字典:

for

last

,first

indirectory

:print

(first

,last

,directory

[last

,first

])

python元組及其特性

一 基礎知識點 1 定義 元組是只能讀不能寫的列表 2 建立元組 t 1,2.3,true,westos t1 1,2,3 4 元組中只有乙個元素時 s westos 字串型別 s westos 元組型別二 元組的特性 users root westos redhat passwds 123 456...

python列表及其方法 元組

列表 它是一種有序的集合 建立列表 列表名 列表選項1,列表選項2,列表選項3,列表選項4.列表選項n 空列表 列表名 列表中的元素資料可以是不同的型別 列表訪問 注意 訪問不要下標越界 取值 格式 列表名 下標 列表操作 1.list1 list2 兩個列表相加 2.列表的擷取 list n,m ...

Python學習 元組與字典及其應用

tuple 元組的類 tu 111,23,33,44 注 1.元組的元素不可以被修改,包括增加和刪除 2.元組內容可以包含一切可以包含的 例 tu 222,alex 11,22 33,44 true,33,44 可以通過切片與索引來進行取值即輸出,但不允需修改 增改刪 元組是有序的 1.迭代 元組能...