Python 資料結構之列表、元組
阿新 • • 發佈:2019-02-16
資料型別之列表、元組
今天來分享一下關於列表和元組的學習心得。本篇是資料型別系列的倒數第二篇,最後一篇我們單獨留給元組,同時會在該篇中解釋原因,敬請期待。
關於列表,這一型別可以說是與之前所分享的 集合 型別相似。但是,僅僅是相似而已,還是存在差距的,要不怎麼會是一種新的資料型別呢
一、列表
列表用 [ ] 表示,內部用逗號 ' , ' 分隔。內部元素不受資料型別限制,可混合使用。
細心的人有沒有發現什麼不同? 沒錯,列表 與 集合 不同的地方在於 它的元素 有序、可更改、可重複,且表示方法為 [ ] 大括號,而不是花括號。同時,列表可使用 [ ] 或 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 異常