1. 程式人生 > >python列表的方法詳解

python列表的方法詳解

列表

引題

原來學過資料型別如 a=1 b=‘hello’ ,但是這些都變數。現實生活中我們想表達 一個班的幾十個學生,一個袋子裡多個水果。python當中提供了一個表達“一組”概念的資料結構,列表。

語法

列表形如 [1,2,3,4] ['小明', '小紅', '小王'] 中括號括起來,裡面有多個元素(項),項可以數字、字串、布林,每一項逗號分隔。

建立

  1. 宣告變數時 中括號、項 ,建立一個非空的列表。 num_list = [1, 2, 3, 4]
  2. 建立一個空列表,之後再修改 num_list = []
  3. 類例項化建立(不常用) list1 = list()

新增

  1. append() 追加 列表物件.append(新項) ,追加一個元素到列表末尾。 list1 = [1,2,3]
    list1.append(4) → [1,2,3,4]
  2. (不常用)insert() 列表物件.insert(索引,新項) ,插入到指定下標處。 list1 = [1,2,3] list1.insert(0, 4) → [4,1,2,3]
  3. (不常用)列表合併 兩個變數都是列表時,可以合併 list1 = [1] list2 = [2, 3] list1 + list2 → [1,2,3]
  4. 批量新增 通過迴圈獲取新項並依次呼叫append() list1 = ['小明', '小紅'] for i in ['小李', '小王', '小肖']: list1.append(i) list1 → ['小明', '小紅', '小李', '小王', '小肖']

刪除

  1. pop() 列表物件.pop(索引) ,刪除指定索引的那一項,刪除成功後返回刪除的內容。 list1 = [1,2,3] list1.pop(0) → 1
  2. remove() 列表物件.remove(項內容),根據項的內容刪除。 list1 = ['小明', '小紅', '小青'] list1.remove('小紅') list1 → ['小明', '小青']
  3. (不常用)clear() 列表物件.clear() ,清空所有項。 list1 = ['小明', '小紅', '小青'] list1.clear() list1 → []
  4. (不常用)關鍵字 del list1 = ['小明', '小紅', '小青']
    del list1[0] list1 → ['小紅', '小青']

修改

  1. 根據下標修改 列表物件[索引] = 新值 list1 = ['小明', '小紅', '小青'] list1[1] = '小王' list1 → ['小明', '小王', '小青']

訪問

  1. 通過下標(索引 index)訪問。 列表中的項以 0,1,2…編號。比如[1,2,3]中的元素1的下標是0。 list1 = [1,2,3] list1[0] → 1 list1[-1] → 3 下標負數表示倒數第幾項
  2. 遍歷,訪問列表中每一項 for i in ['小明', '小紅', '小青']: print(i)
  3. 遍歷,迴圈下標。 場景 修改。 len(列表物件) 返回的是列表的項數。 list1 = ['小明', '小紅', '小青'] for i in range(0, len(list1)): print(list1[i])

切片 slice

列表物件[起始下標 : 結束下標+1 : 步進] 左閉右開區間

list1 = ['小明', '小紅', '小青', '小王', '小楊'] list1[0: 2] → ['小明', '小紅'] list1[: 2] → ['小明', '小紅'] 簡寫,從頭開始擷取,下標0的話可以省略 list1[2:] → ['小青', '小王', '小楊'] 簡寫,擷取到末尾,末尾下標省略 list1[1:3] → ['小紅', '小青'] list1[-3: -1] → ['小青', '小王'] 下標可以為負 list1[4: 0] → [] 注意擷取的方向,第一個下標小於第二個下標,否則返回空 list1[::-1] → ['小楊', '小王', '小青', '小紅', '小明']

查詢

num_list = [1,2,3,4] num_list.index(1) → 0 num_list.index(5) → 報錯ValueError

in 判斷, if 條件

num_list = [1,2,3,4] 1 in num_list → True 場景 與if 連用。 if 1 in [1,2,3,4]: if []: 空列表 if判斷為False。

排序

todo

可能出現的錯誤

num = [1,2,3,4] num[4] 報錯下標越界。IndexError: list index out of range 錯誤一般發生在收集資料程式碼邏輯錯誤,列表本身就位空。

寫程式碼技巧

寫幾句程式碼就測試執行一下,多print(變數) type(變數),把大問題分解成小問題(先寫input或先寫某一個if分支),先把程式的大概結構寫出來,再去寫細節。

第一遍程式碼以模仿為主,剛開始誰都不知道怎樣去寫,會有歧義和可能。所以我們第一次只要根據答案抄一遍,想清楚思路。 第二遍比葫蘆畫瓢,舉一反一,自己完整解決問題,初步具備程式設計思想和熟練度。 第三遍以後,專案越來越複雜,重複運用之前的知識點,知識點越來越熟練。