官术网_书友最值得收藏!

2.4 元組

Python中另外一個比較常用的數據結構是元組,又稱為tuple,它屬于序列中的不可變序列。

1.元組的基本特性

元組是序列中的不可變序列,它與列表有很多相同點。列表是一個可以包含任意對象的有序集合,這一點同樣適用于元組。所以說,元組也是“可以包含任意對象的有序集合”。當然,元組也有與列表不同的特點。以下是元組所具有的特性:

(1)元組是包含任意對象的有序集合。

(2)通過下標索引(位置偏移)訪問元素。

(3)固定長度(列表是可變長度)、異質、可任意嵌套。

(4)對象引用數組。

2.元組的聲明

列表通過一個中括號來聲明,元組可以使用一個圓括號來進行聲明。

1)空元組的聲明

2)聲明只含一個元素的元組

強調:對只含一個元素的元組進行聲明時,末尾的“,”不能省略!

3.元組轉換函數tuple()

與列表類似,同樣可以將某個特定的可迭代序列轉換為元組。假定有函數“range()”生成了一個序列,可以通過轉換函數“tuple()”將它轉換為一個元組。

“range(1,6)”產生的是一個可迭代的序列,其值是:1,2,3,4,5,注意不包含值 6,后面將會介紹。

4.元組的常用操作

對元組元素的訪問操作,仍然是通過下標索引來進行的。也可以進行一定范圍的訪問,即通過范圍進行訪問。由于元組也是序列類型,因此,元組支持序列類型的通用操作,如判斷元素是否在序列之內、連接序列、重復序列元素、下標獲取元素、訪問指定索引范圍、按步長訪問指定索引范圍、獲取序列長度、獲取最小值、獲取最大值、求和(必須是數字類型數據)等都可以用在元組上。但不支持可變序列及列表的通用操作,因為它有不可變的特性,即元組不支持原位改變,也不支持擴展操作。如:

這里,由于元組元素 tp[2]是一個列表,因此,可以對其進行修改,但如果元素又是一個元組,則仍然不允許修改。

相對于列表而言,元組少了很多操作。但可能還會遇到一個函數返回多個值的情況,比如“return a,b”,這種情況其本質上還是一個元組,也就是說,元組使用的場景還是比較多、比較廣的。

在實際開發過程中,如果我們確定不會出現原位改變這種情況,則用元組比用列表更合適,能在一定程度上保證數據的安全。

5.使用元組的好處

元組比列表操作速度快,如果定義了一個值的常量集,并且唯一要使用的是不斷地遍歷它,那就使用元組來代替列表。

利用元組存儲數據,可以對不需要修改的數據進行“寫保護”,使得代碼更安全。使用元組而不是列表如同擁有一個隱含的 assert(斷言,第 4 章將介紹)語句,說明這一數據是常量,如果必須要改變這些值,則需要執行從元組到列表的轉換。

下面是由元組轉換成列表的代碼示例。

主站蜘蛛池模板: 安达市| 察隅县| 五指山市| 巴南区| 女性| 达拉特旗| 江都市| 永德县| 宿州市| 克拉玛依市| 蒙城县| 安达市| 靖远县| 南宁市| 海安县| 宁远县| 尉氏县| 镇宁| 当涂县| 徐闻县| 社会| 绥棱县| 怀化市| 县级市| 海口市| 乳源| 启东市| 浦县| 敦煌市| 凤山市| 玉树县| 洛宁县| 安陆市| 中方县| 如东县| 上虞市| 淮滨县| 安多县| 蒲江县| 兴文县| 莱西市|