分享學習Python數據結構的一些理解,主要包含序列(如列表和元組),映射(如字典)以及集合3中基本的數據結構,以及可變和不可變數據類型。 ...
摘要:分享學習Python數據結構的一些理解,主要包含序列(如列表和元組),映射(如字典)以及集合3中基本的數據結構,以及可變和不可變數據類型。
Python 中的數據結構是根據某種方式將數據元素組合起來形成的一個數據元素集合,其中主要包含序列(如列表和元組),映射(如字典)以及集合3中基本的數據結構。幾乎所有的Python數據結構都可以歸結為這3種數據結構類型。
1.數據類型結構總表
Python數據結構除了分為序列(如列表和元組),映射(如字典)以及集合3中基本的數據結構外,也可區分為可變數據類型與不可變數據類型。
(1)可變數據類型
通過可變數據類型,可以直接對數據結構對象的內容進行修改(並非是重新對對象賦值操作,即可以對數據結構對象進行元素的賦值修改、刪除或增加等操作。由於可變數據類型對象能直接對自身進行修改,所以修改後的新結果仍與原對象引用同一個id地址值,即由始至終只對同一個對象進行了操作。 Python中比較重要的可變數據類型包括列表、字典、可變集合等。
(2)不可變數據類型
與可變數據類型不同,不可變數據類型不能對數據結構對象的內容進行修改操作,不可對對象中的元素進行增加、刪除和賦值修改。若需要對對象進行內容修改,則需要對其變數名進行重新賦值,賦值操作會把變數名指向一個新對象,新舊對象兩者引用兩個不同的id地址值。常用的不可變數據類型包括數字、字元串、元組、不可變集合等。
2.序列類型
序列是數據結構對象的有序排列,數據結構對象作為序列的元素都會被分配一個位置編號(也稱為索引),序列就相當於數學中數列的概念。Python中的序列類型包括字元串(string)、列表(list)、元組(tuple)、Unicode字元串、 buffer對象、 Xrange對象等數據結構,其中字元串、列表和元組最為常用。
字元串特點:
- "任何在這雙引號之間的文字”;
- "單引號其實和雙引號完全一樣”;
- '''三個引號被用於長段文字
或說明,只要引號不結束,你就可以任意
換行''’;
- 字元串屬不可變數據類型。
列表特點:
- 列表創建在[ ]中,例[12,’dog’,’貓’]
- 列表中每個元素都是可變的;
- 列表中的元素是有序的,每個元素對應一個位置;
- 列表可以容納Python中的任何對象。
元組特點:
- 元祖創建在( )中,例(55,’app’,’a’,’p’,’p’)
- 元祖中每個元素都是不可變的;
- 元祖中的元素是有序的,每個元素對應一個位置。
3.映射類型
映射類型就是存儲了對象與對象之間的映射關係的數據結構類型, Python中唯一的映射類型數據結構是字典( dictionary),字典中的每個元素都存在相應的名稱(稱為鍵)與之一一對應。字典相當於帶有各自名稱的元素組成的集合。與序列不同的是,字典中的元素並沒有排列順序。
字典特點:
- 字典創建在{ }中,例{key1:value1,,key2:value2,key3:value3,}
- 元素是鍵值對是無序、可變的,但鍵不變且不允許重覆,值可變;
- 鍵-值成對出現;
- 鍵不能重覆;
- 鍵不可更改,值可修改;
- 鍵來索引值。
4.集合類型
除了上述基本數據結構類型外, Python還提供了一種稱為集合的數據結構。集合當中的元素不能重覆出現,即集合中的元素是相對唯一的,並且元素不存在排列順序。由此可以看出, Python中的集合概念相當於數學中的集合概念。集合類型包括可變集合(set)與不可變集合( frozenset)。
集合特點:
- 集合創建在{ }中,例{1,2,3,’a’,’b’,’c’}
- 集合是無序的;
- 集合不能重覆,不可更改。