摘要:計算元組所有元素的和,其元素類型必須是數(shù)值型的整數(shù),浮點數(shù)返回一個排序的列表,但并不改變原元組。只有元組所有元素為才返回。
元組(元組)跟列表(名單)非常相似,二者之間的差異就是元組不可改變,列表是可以改變的。
創(chuàng)建元組(元組)跟列表的中括號不同,元組用圓括號把所有項括起來,元素之間用逗號分隔:
In [15]: mytuple = ("a", "b", 3, 8.9, [1,2]) In [16]: mytuple Out[16]: ("a", "b", 3, 8.9, [1, 2]) In [17]: x = ("a", ) # 只有一個元素的元組 In [18]: y = () # 空元組元組(元組)的索引(索引)
元組的索引機制跟列表完全一樣,看下面的示例:
In [22]: mytuple[0] Out[22]: "a" In [23]: mytuple[1] Out[23]: "b" In [24]: mytuple[3] Out[24]: 8.9
同樣,元組也有負索引:
In [25]: mytuple[-1] Out[25]: [1, 2] In [26]: mytuple[-2] Out[26]: 8.9
Python的元組的索引可以是正索引(從頭到尾),也可以是負索引(從尾到頭),總結(jié)為下面的關(guān)系:
元組: ("a", "b", "c", "d", "e") | | | | | 正索引: 0 1 2 3 4 負索引: -5 -4 -3 -2 -1
因為元組是不可修改的,我們通過索引企圖修改元素時,就會報錯:
In [116]: x = ("a", 1, [1,2]) In [117]: x[1] = 2 -------------------------------------------- TypeError Traceback (most recent call last)in ----> 1 x[1] = 2 TypeError: "tuple" object does not support item assignment In [118]: x[2][1] = 3 #修改的不是元組,而是list In [119]: x Out[119]: ("a", 1, [1, 3]) In [121]: x[2] = ["a", "b"] # 此處企圖修改第三個元素,報錯! -------------------------------- TypeError Traceback (most recent call last) in ----> 1 x[2] = ["a", "b"] TypeError: "tuple" object does not support item assignment
但是,我們修改元組中的列表時卻成功了。元組x的前兩個元素"a",1都是不可變的,而第三個元素是list,這個列表是可以改變的,但不能把第三個元素賦值為其它列表(上面示例中最后一個操作)或其它任何類型的數(shù)據(jù)。
元組(元組)的切片(切片)元組的切片跟列表也是一樣的
In [27]: mytuple[1:3] Out[27]: ["b", 3] In [28]: mytuple[:3] Out[28]: ["a", "b", 3] In [29]: mytuple[1:] Out[29]: ["b", 3, 8.9, [1, 2]] In [30]: mytuple[:] Out[30]: ["a", "b", 3, 8.9, [1, 2]]
上面例子中,切片范圍的起止索引可以是缺失的,左邊缺失就是從頭(0)開始,右邊缺失就是后面的全部。
元組(元組)運算符元組的運算符跟列表也一樣:
運算符 | 含義 | 表達式 | 結(jié)果 |
---|---|---|---|
+ | 合并在一起 | ("a", "b", "c") + (1, 2, 3) | ("a", "b", "c", 1, 2, 3) |
* | 重復(fù) | ("a",) * 3 | ("a", "a", "a") |
in | 是否為元素 | "a" in ("a", "b") | True |
從頭到尾遍歷(迭代)一個tuple的語法是for x in the-tuple::
for x in (1, 2, 3): print(x)刪除元組(元組)
(1)刪除整個元組
In [35]: mytuple = ["a", "b", 3, 8.9, [1,2]] In [36]: del mytuple In [37]: mytuple --------------------------------------------------------------------------- NameError Traceback (most recent call last)in ----> 1 list_a NameError: name "list_a" is not defined
由于元組是不可改變的,我們就不能像列表那樣,使用del來刪除元型態(tài)組的元素。
In [127]: x = ("a", 1, [1,2]) In [128]: del x[0] -------------------------------- TypeError Traceback (most recent call last)元組相關(guān)的內(nèi)置函數(shù)in ----> 1 del x[0] TypeError: "tuple" object doesn"t support item deletion
(1)len()
計算元組的長度,即計算元組元素的個數(shù))
In [55]: len([1,2,3]) Out[55]: 3
(2)max()
返回元組元素中的最大值,元組元素必須是同一類型且可比較,比如都是數(shù)字型的,或都是字符串,如果類型不統(tǒng)一就會報錯:
In [57]: max(("a", "b", "c")) Out[57]: "c" In [58]: max((1,2,"a")) --------------------------------------------------------------------------- TypeError Traceback (most recent call last)in ----> 1 max((1,2,"a")) TypeError: ">" not supported between instances of "str" and "int"
(3)min()
返回元組元素中的最小值。元素類型要求跟max()一樣。
In [59]: min((1,2,3)) Out[59]: 1 In [60]: min(("a", "b", "c")) Out[60]: "a" In [61]: min((1,2,"a")) --------------------------------------------------------------------------- TypeError Traceback (most recent call last)in ----> 1 min((1,2,"a")) TypeError: "<" not supported between instances of "str" and "int"
(4)sum()
計算元組所有元素的和,其元素類型必須是數(shù)值型的(整數(shù),浮點數(shù))
In [63]: sum((1,2,3)) Out[63]: 6 In [64]: sum((1.2, 3.2, 4.3)) Out[64]: 8.7 In [65]: sum(("a", "b", "c")) --------------------------------------------------------------------------- TypeError Traceback (most recent call last)in ----> 1 sum(("a", "b", "c")) TypeError: unsupported operand type(s) for +: "int" and "str"
(5)sorted()
返回一個排序的列表,但并不改變原元組。
In [66]: sorted((3, 9, 0, 5)) Out[66]: [0, 3, 5, 9] In [68]: sorted(("python", "yuanrenxue", "good")) Out[68]: ["good", "python", "yuanrenxue"]
(6)tuple()
生成一個空元組,或把其它類型數(shù)據(jù)轉(zhuǎn)換成元組。
In [69]: tuple() Out[69]: () In [70]: tuple("python") Out[70]: ("p", "y", "t", "h", "o", "n")
(7)any()
只要元組中有一個元素是True就返回True。
In [72]: any((0, "", "3")) Out[72]: True
(8)all()
只有元組所有元素為True才返回True。
In [73]: all((0, "", "3")) Out[73]: False In [74]: all((3, "a", True)) Out[74]: True元組(元組)的內(nèi)置方法
由于元組的不可改變,它的方法也比列表少了很多,只有兩個:
index(v)返回第一個值為v的元素的索引;?
count(v)返回值為v的元素的個數(shù)。
In [138]: x = (1,3,2,6,2,4) In [139]: x.index(2) Out[139]: 2 In [140]: x.count(2) Out[140]: 2元組的拆包(開箱)
Python的中如果要初始化多個變量,可以用下面的方式:
In [141]: a,b,c,d = 1,2,3,4 In [142]: a,b,c,d Out[142]: (1, 2, 3, 4)
以上代碼給A,B,C,d分別賦值1,2,3,4,這時候一個是1,B是2,C是3,d是4
還有更絕的拆包方法,就是那星用號*來吸收多余的元素:
In [146]: x = (1,2,3,4,5) In [147]: a, *b = x # x有5個元素,左邊變量只有兩個,多余的都被帶*的b吸收了 In [148]: a, b Out[148]: (1, [2, 3, 4, 5]) In [149]: a, *b, c = x #多虧帶*的b In [150]: a,b,c Out[150]: (1, [2, 3, 4], 5) In [151]: *a, b, c = x #多虧帶*的a In [152]: a,b,c Out[152]: ([1, 2, 3], 4, 5) In [153]: a,b,c = x #沒有帶*的,x的5個元素?zé)o法匹配3個變量 --------------------- ValueError Traceback (most recent call last)總結(jié)in ----> 1 a,b,c = x ValueError: too many values to unpack (expected 3)
元組跟列表非常相似,前者不能被修改,后者隨便改。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/43776.html
摘要:第二個索引元素不在分片內(nèi)。顯示操作索引指向第個元素,第個元素不存在。序列加法乘法表示個空列表空列表用初始化成員資格運算符布爾運算符,檢查值是否在序列中。修改列表,沒有返回值。在原位置對列表排序。 序列 例: Edward = [abc, 12] 序列中的所有元素都是有編號的,從0開始遞增。 Note: 使用負數(shù)索引-1,Python會從右邊,也就是從最后一個元素開始計數(shù)。最后一個元素...
摘要:布爾值布爾值和布爾代數(shù)的表示完全一致,一個布爾值只有兩種值的數(shù)據(jù)類型可以通過內(nèi)置的函數(shù)查詢,例如還可以用來判斷和的區(qū)別在于不會認為子類是一種父類類型。會認為子類是一種父類類型。基本功能是進行成員關(guān)系測試和刪除重復(fù)元素。 ...
文章目錄 強烈推薦系列教程,建議學(xué)起來!! 一.pycharm下載安裝二.python下載安裝三.pycharm上配置python四.配置鏡像源讓你下載嗖嗖的快4.1pycharm內(nèi)部配置 4.2手動添加鏡像源4.3永久配置鏡像源 五.插件安裝(比如漢化?)5.1自動補碼神器第一款5.2漢化pycharm5.3其它插件 六.美女背景七.自定義腳本開頭八、這個前言一定要看九、pyt...
摘要:易于維護的成功在于它的源代碼是相當(dāng)容易維護的。可移植基于其開放源代碼的特性,已經(jīng)被移植也就是使其工作到許多平臺。集合集合是由一個或數(shù)個形態(tài)各異的大小整體組成的,構(gòu)成集合的事物或?qū)ο蠓Q作元素或是成員。基本功能是進行成員關(guān)系測試和刪除重復(fù)元素。 ...
閱讀 2014·2021-11-15 11:38
閱讀 2048·2019-08-30 15:55
閱讀 2182·2019-08-30 15:52
閱讀 3167·2019-08-30 14:01
閱讀 2684·2019-08-30 12:47
閱讀 1128·2019-08-29 13:17
閱讀 1062·2019-08-26 13:55
閱讀 2629·2019-08-26 13:46