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