摘要:元組是不可以改變的序列,如果元組的元素包含列表字典是支持修改操作的。這就意味著它們通過算法得到的值總是一個(gè)值。這是作為字典鍵值的一個(gè)必備條件。
元組是不可以改變的序列,如果元組的元素包含列表、字典是支持修改操作的。
因?yàn)椴豢勺兯栽氐男薷臅?huì)報(bào)錯(cuò):
>>> tt=(3,4,5) >>> type(tt)>>> tt[2]=4
Traceback (most recent call last):
File "
TypeError: "tuple" object does not support item assignment(#元素修改報(bào)錯(cuò))
(一)元組
(1)定義元組: 創(chuàng)建一個(gè)元組并給他賦值實(shí)際上跟創(chuàng)建一個(gè)列表并給它賦值完全一樣,除了一點(diǎn),只有一個(gè)元素的元組需要在元組分割符里面加一個(gè)逗號(hào)(,)用以防止跟普通的分組操作符混淆.不要忘了它是一個(gè)工廠方法
>>> a=() >>> a=(1,) #如果不加,就表示a=(1)等價(jià)于1 >>> a (1,) >>> a=2,3 >>> type(a)>>> a (2, 3) >>> tuple("bar") #工廠方法定義無組 ("b", "a", "r") >>> def f(): #函數(shù)的返回值是一個(gè)元組 >>> return 2,3 >>> f() (2, 3)
元組的成員:包括字典、列表、數(shù)字、字符:
>>> tuple22=(None,5,6,6,"ab",[1,2,3]) >>>?a=(1,2,"a",["b",3],{1:2}) >>>?type(a)>>>?for?i?in?a: ...?????print?i ... 1 2 a ["b",?3] {1:?2} >>>?a[3][0]="x" >>>?print?a (1,?2,?"a",?["x",?3],?{1:?2}) >>>?a[4][1]="x" >>>?print?a (1,?2,?"a",?["x",?3],?{1:?"x"})
(2)訪問元組:元組的切片操作跟列表一樣,用方括號(hào)作為切片操符([]),里面寫上索引值或者索引范圍.
>>> aTuple = (123, "abc", 4.56, ["inner", "tuple"], 7-9j) >>> aTuple[1:4] ("abc", 4.56, ["inner", "tuple"]) >>> aTuple[:3] (123, "abc", 4.56) >>> aTuple[3][1] "tuple"
(3)更新元組:
跟數(shù)字和字符串一樣,元組也是不可變類型,就是說你不能更新或者改變元組的元素,我們是通過現(xiàn)有字符串的片段再構(gòu)造一個(gè)新字符串的方式解決的,對元組同樣需要這樣.
>>> aTuple = aTuple[0], aTuple[1], aTuple[-1] >>> aTuple (123, "abc", (7-9j)) >>> tup1=(12,34.56) >>> tup2=("abc","xyz") >>> tup3=tup1+tup2 >>> tup3 (12, 34.56, "abc", "xyz")
(4)元組的刪除:刪除一個(gè)多帶帶的元組元素是不可能的,刪除一整個(gè)元組是可以的。
>>> a=(1,[2,3],{4:5,5:6}) >>> del a[0] Traceback (most recent call last): File "", line 1, in TypeError: "tuple" object doesn"t support item deletion >>> del a[1][1] >>> print a (1, [2], {4: 5, 5: 6}) >>> del a[2][4] >>> print a (1, [2], {5: 6})
(二)元組:標(biāo)準(zhǔn)類型操作符,序列類型操作符和內(nèi)建函數(shù)
(1)創(chuàng)建,重復(fù),連接操作
>>> t = (["xyz", 123], 23, -103.4) >>> t (["xyz", 123], 23, -103.4) >>> t*2 (["xyz", 123], 23, -103.4, ["xyz", 123], 23, -103.4) >>> t=t+("free","easy") >>> t (["xyz", 123], 23, -103.4, "free", "easy")
(2)成員關(guān)系操作,切片操作
>>> 23 in t True >>> 123 in t False >>> t[0][1] 123 >>> t[1:] (23, -103.4, "free", "easy")
(3)內(nèi)建函數(shù)
>>> str(t) "(["xyz", 123], 23, -103.4, "free", "easy")" >>> len(t) 5 >>> max(t) "free" >>> min(t) -103.4 >>> cmp(t,(["xyz", 123], 23, -103.4, "free", "easy")) 0 >>> list(t) [["xyz", 123], 23, -103.4, "free", "easy"]
(4)操作符
>>> (4,2)<(3,5) False >>> (2,4)<(3,-1) True >>> (2,4)==(3,-1) False >>> (2,4)==(2,4) True
(三)元組類型操作符和內(nèi)建函數(shù),內(nèi)建方法:元組的特殊性
(1)所有的多對象的,逗號(hào)分隔的,沒有明確用符號(hào)定義的,比如說像用方括號(hào)表示列表和用圓括號(hào)表示元組一樣,等等這些集合默認(rèn)的類型都是元組:
>>> "abc", -4.24e93, 18+6.6j, "xyz" ("abc", -4.24e+93, (18+6.6j), "xyz") >>> x,y=1,2 >>> x,y (1, 2)
所有函數(shù)返回的多對象(不包括有符號(hào)封裝的)都是元組類型。注意,有符號(hào)封裝的多對象集合其實(shí)是返回的一個(gè)單一的容器對象:
>>> def foo(x,y): ... return x,y >>> foo(4,5) (4, 5) >>> def foo1(x,y): ... return (x,y) >>> foo1(5,6) (5, 6)
(2)作為字典的關(guān)鍵字
不可變對象的值是不可改變的。這就意味著它們通過 hash 算法得到的值總是一個(gè)值。這是作為字典鍵值的一個(gè)必備條件。
>>> dic={(3,4):"welcome","a":333} >>> dic {"a": 333, (3, 4): "welcome"}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/40899.html
摘要:元組和列表的為唯一區(qū)別就是列表可以更改,元組不可以更改,其他功能與列表一樣創(chuàng)建元組的兩種方法第一種第二種如果元祖內(nèi)只有一個(gè)元素,那么需要加上一個(gè)逗號(hào),否則就變成字符串了。 元組(tuple)和列表的為唯一區(qū)別就是列表可以更改,元組不可以更改,其他功能與列表一樣 創(chuàng)建元組的兩種方法 第一種 ages = (11, 22, 33, 44, 55) 第二種 ages = tuple((11,...
摘要:元組運(yùn)算符可與使用加號(hào)來連接兩個(gè)元組輸出為也可以使用乘號(hào)輸出為當(dāng)然也可以用成員運(yùn)算符通用地可以使用刪除元組元組相關(guān)內(nèi)置函數(shù)計(jì)算元組元素個(gè)數(shù)。返回元組中元素最大值返回元組中元素最小值。可迭代對象將可迭代對象轉(zhuǎn)換為元組。 元組是什么? 你可以把它看作是只讀的列表,因?yàn)樵M不可改變,但是要注意,如果元組中含有列表元素,則該列表元素是可變的,通俗地講就是兒子不可變,但是孫子可變 由于元組不可...
摘要:通過字段名或者位置來獲取一個(gè)字段的信息屬性是一個(gè)包含這個(gè)類所有字段名稱的元組用通過接受一個(gè)可迭代對象來生成這個(gè)類的一個(gè)實(shí)例作用跟一樣把具名元組以形式返回 元組不僅僅是不可變列表 元組其實(shí)是對數(shù)據(jù)的記錄:元組中的每個(gè)元素都存放了記錄中一個(gè)字段的數(shù)據(jù),外加這個(gè)字段的位置。 正是這個(gè)位置信息給數(shù)據(jù)賦予了意義 lax_coordinates = (33.9425, -118.408056)...
摘要:與聲明數(shù)組類型類似只不過在數(shù)組基礎(chǔ)上更加細(xì)分化每個(gè)元素示例順序不可以顛倒長度不可以違規(guī)是固定的如果你的數(shù)組沒有滿足元組要求報(bào)錯(cuò)意思就是你的屬性個(gè)在類型中缺失,但在元組中設(shè)定是必須的如果你的元素沒有滿足數(shù)組的長度會(huì)怎么樣呢報(bào)錯(cuò)意思是你的數(shù)組不 與 聲明數(shù)組類型 類似 只不過在 數(shù)組 基礎(chǔ)上更加細(xì)分化每個(gè)元素 示例: let myTuple: [number, string, boo...
摘要:類元編程是指在運(yùn)行時(shí)創(chuàng)建或定制類的技藝。注意在中做元編程時(shí)最好不要用和函數(shù)。三元類基礎(chǔ)知識(shí)元類是類元編程最高級的工具使用元類可以創(chuàng)建具有某種特質(zhì)的全新變種,例如抽象基類。建議除非開發(fā)框架,否則不要在生產(chǎn)代碼中定義元類或抽象基類。 導(dǎo)語:本文章記錄了本人在學(xué)習(xí)Python基礎(chǔ)之元編程篇的重點(diǎn)知識(shí)及個(gè)人心得,打算入門Python的朋友們可以來一起學(xué)習(xí)并交流。 本文重點(diǎn): 1、了解運(yùn)行時(shí)創(chuàng)建...
閱讀 1873·2021-11-25 09:43
閱讀 2151·2021-11-19 09:40
閱讀 3432·2021-11-18 13:12
閱讀 1744·2021-09-29 09:35
閱讀 666·2021-08-24 10:00
閱讀 2512·2019-08-30 15:55
閱讀 1718·2019-08-30 12:56
閱讀 1820·2019-08-28 17:59