Python學習入門教程(11)—序列和元組

(本號正在連續推出以Python官網文檔為主線的系統學習Python的系列文章或視頻,感興趣的朋友們歡迎搜索關注。本文及後續文章如無特別聲明均以Windows平臺作為演示平臺,Python版本為:3.8.1)


此前我們已經介紹的列表和字符串都屬於序列數據類型。它們具有許多共同的特性,例如能夠索引和切片等。這些特性在序列數據類型的所有子類型中的含義和用法是一致的。在之前介紹了形如a[i:j]的切片表示形式,其實切片的完整表示形式是a[i:j:k],前者是後者k=1時的略寫形式。 切片的完整形式表示的意思是:在序列a中從索引i(包括)開始到索引j(不包括)按步長k依次取出元素形成的序列。切片的完整形式在下邊將使用到。需要強調的是:序列數據類型的索引是從0開始的,也就是序列數據類型的第一個元素的索引為0,第二個為1,以此類推。

對本文下面表格中將用到的標示符說明如下: s是一個可變序列類型的實例,t是任何可迭代的對象,x是滿足s限制的任何類型和值的任意對象(例如,bytearray只接受滿足0 <= x <= 255的整數)。i,j,k為大於等於0的整數,其大小關係由其使用上下文決定。

序列數據類型

序列數據類型支持的通用操作序列數據類型的子類型都會支持如下操作:

Python學習入門教程(11)—序列和元組

【表】序列數據類型支持的通用操作

序列數據類型的分類Pyhton的序列數據類型按其元素直接引用的對象集合是否可改變分為兩類:

不可變序列數據類型不可變序列數據類型的對象一旦創建,其直接引用的對象集合就不能改變了。如果不可變序列數據類型的對象包含對其他對象的引用,這些其他對象可以為可變的對象,並可以被更改。除了沒有實現對內置hash()的支持外,可變序列數據類型實現了不可變序列數據類型通常所支持的所有操作。由於支持hash(),不可變的序列的實例(例如tuple實例)可被用作dict鍵並存儲在set和frozenset實例中。嘗試哈希包含不可哈希的不可變序列將導致TypeError。目前Python內置的不可變序列數據類型的子類型有:字符串,元組,字節。字符串在前面的文章的已經介紹過,元組將在本文隨後介紹,字節將在後繼文章中介紹。可變序列數據類型可變序列數據類型的對象在創建之後,其直接引用的對象集合是可以改變的。目前Python內置的可變序列數據類型的子類型有:列表和字節數組。下表列出了可變序列數據類型支持的操作:

Python學習入門教程(11)—序列和元組

【表】可變序列數據類型支持的操作

【注】Python是不斷演進的語言,其他的序列數據類型在以後可能會加入。

元組的定義及使用

元組是不可變序列數據類型,其支持上面列出的序列的所有通用操作和不可變序列支持的操作。元組是由一些逗號分隔的值組成的,這些值可以為不同類型。定義方式形如:t=elem1,ele2,elem3或t=(elem1,ele2,elem3)。示例如下:

Python學習入門教程(11)—序列和元組

【示例】元組的定義及使用


【結束】


Python學習入門教程(11)—序列和元組


分享到:


相關文章: