1. 程式人生 > >Python 資料結構之列表、元組

Python 資料結構之列表、元組

資料型別之列表、元組

       今天來分享一下關於列表和元組的學習心得。本篇是資料型別系列的倒數第二篇,最後一篇我們單獨留給元組,同時會在該篇中解釋原因,敬請期待。

       關於列表,這一型別可以說是與之前所分享的 集合 型別相似。但是,僅僅是相似而已,還是存在差距的,要不怎麼會是一種新的資料型別呢

一、列表

       列表用 [ ] 表示,內部用逗號 ' , ' 分隔。內部元素不受資料型別限制,可混合使用。 

       細心的人有沒有發現什麼不同? 沒錯,列表 與 集合 不同的地方在於 它的元素 有序、可更改、可重複,且表示方法為 [ ] 大括號,而不是花括號。同時,列表可使用 [ ] 或 list( ) 建立。

       方法:

       1、關於基本操作,在這裡介紹 替換,刪除,連線,複製,判斷成員資格,求長度

  • 替換、刪除:在索引的基礎上,通過 [x: y: z] 來選出 從 x 開始,到 y 截至,步長為 z 的範圍。 通過L [ x: y: z ]  = [ ... ]來替換選中範圍內的元素。 del L[ x: y: z ]來刪除選中範圍內的元素。[ x: y: z ]依舊是分(切)片,包括 x 對應的元素,不包括 y 對應的元素。 x, y, z 的數值不要越界。x, y, z 均可缺失,x缺失表示從頭開始,y缺失表示至結尾,z缺失表示其預設值為1
  • 連線:L1 + L2    用於兩個列表之間的連線
  • 複製多個: L * n    複製n次列表 L
  • 判斷成員資格: in    可用於判斷一個元素 n 是否在列表 L 中存在。 用 n in L 來判斷。 存在則返回 True,反之則返回False
  • 求長度:通過 len( L )    返回列表長度。 即,列表內元素個數

       2、更多的相關操作

  • 求列表內元素的最小值 / 最大值    min( ) / max( ) 括號內參數為列表名。注意!此方法需要列表內元素型別相同。 若不同則無法比較,將丟擲 TypeError 異常
  • 元素第一次出現的位置    L.index( x, i, j ) 引數 x 為要查詢的元素。 i, j 可缺失,表示從整個列表查詢。 否則從 i 開始,j 結束,同樣的,j不包含在查詢範圍中。 提示兩點:索引號依舊是從 0 開始;另外,引數 x 的型別,需要與列表內元素匹配。否則將找不到此元素,並丟擲 ValueError 異常。 
  • 元素出現的次數    L.count( x ) 引數 x 為需要統計次數的元素,返回值為數值
  • L.append( x )    將 x 加入列表 L 中
  • L.insert(  i, x )    在列表的第 i 個位置處增加元素 x
  • L.remove( x )    從列表 L 中移除出現的第一個 x
  • L.clear( )    移除列表 L 中的所有元素
  • L.pop( i )    丟擲列表 L 中的位置為 i 的元素,並更新列表 L 。就是說,彈出這個隨機元素後,該列表中將不再有此元素
  • L.copy( )    返回列表 L 的一個副本。在賦值後與原列表互不干預
  • L.reverse( )    將列表L中的元素反轉

至此,列表部分結束~

二、元組

       元組與上述的列表不同,它一旦被建立便不允許進行修改。使用小括號 ( ) 或 tuple( ) 建立。 依舊是使用 ' , ' 逗號分隔,且內部元素不做型別的限制,可混用。

        由於元組的內容不可更改,這一特性也導致了它只有少數的操作,並無很多的方法。

  • 分(切)片:在索引的基礎上,通過 [x: y: z] 來選出 從 x 開始,到 y 截至,步長為 z 的範圍。通過 T[ x: y: z ]來查詢範圍內的元素。[ x: y: z ]依舊是分(切)片,包括 x 對應的元素,不包括 y 對應的元素。 x, y, z 的數值不要越界。x, y, z 均可缺失,x缺失表示從頭開始,y缺失表示至結尾,z缺失表示其預設值為1
  • 連線:T1 + T2    用於兩個元組之間的連線
  • 複製多個: T * n    複製n次元組 T
  • 判斷成員資格: in    可用於判斷一個元素 n 是否在元組 T 中存在。 用 n in m 來判斷。 存在則返回 True,反之則返回False
  • 求長度:通過 len( T )    返回元組長度。 即,元組內元素個數
  • 求元組內元素的最小值 / 最大值    min( ) / max( ) 括號內參數為元組名。 注意!此方法需要元組內元素型別相同。 若不同則無法比較,將丟擲 TypeError 異常
  • 元素第一次出現的位置    T.index( x, i, j ) 引數 x 為要查詢的元素。 i, j 可缺失,表示從整個元組查詢。 否則從 i 開始,j 結束,同樣的,j不包含在查詢範圍中。 提示兩點:索引號依舊是從 0 開始;另外,引數 x 的型別,需要與元組內元素匹配。否則將找不到此元素,並丟擲 ValueError 異常