python列表的方法詳解
列表
引題
原來學過資料型別如 a=1 b=‘hello’ ,但是這些都變數。現實生活中我們想表達 一個班的幾十個學生,一個袋子裡多個水果。python當中提供了一個表達“一組”概念的資料結構,列表。
語法
列表形如 [1,2,3,4] ['小明', '小紅', '小王']
中括號括起來,裡面有多個元素(項),項可以數字、字串、布林,每一項逗號分隔。
建立
- 宣告變數時 中括號、項 ,建立一個非空的列表。
num_list = [1, 2, 3, 4]
- 建立一個空列表,之後再修改
num_list = []
- 類例項化建立(不常用)
list1 = list()
新增
- append() 追加
列表物件.append(新項) ,追加一個元素到列表末尾。
list1 = [1,2,3]
list1.append(4) → [1,2,3,4]
- (不常用)insert()
列表物件.insert(索引,新項) ,插入到指定下標處。
list1 = [1,2,3]
list1.insert(0, 4) → [4,1,2,3]
- (不常用)列表合併
兩個變數都是列表時,可以合併
list1 = [1]
list2 = [2, 3]
list1 + list2 → [1,2,3]
- 批量新增
通過迴圈獲取新項並依次呼叫append()
list1 = ['小明', '小紅']
for i in ['小李', '小王', '小肖']:
list1.append(i)
list1 → ['小明', '小紅', '小李', '小王', '小肖']
刪除
- pop()
列表物件.pop(索引) ,刪除指定索引的那一項,刪除成功後返回刪除的內容。
list1 = [1,2,3]
list1.pop(0) → 1
- remove()
列表物件.remove(項內容),根據項的內容刪除。
list1 = ['小明', '小紅', '小青']
list1.remove('小紅')
list1 → ['小明', '小青']
- (不常用)clear()
列表物件.clear() ,清空所有項。
list1 = ['小明', '小紅', '小青']
list1.clear()
list1 → []
- (不常用)關鍵字 del
list1 = ['小明', '小紅', '小青']
del list1[0]
list1 → ['小紅', '小青']
修改
- 根據下標修改
列表物件[索引] = 新值
list1 = ['小明', '小紅', '小青']
list1[1] = '小王'
list1 → ['小明', '小王', '小青']
訪問
- 通過下標(索引 index)訪問。
列表中的項以 0,1,2…編號。比如[1,2,3]中的元素1的下標是0。
list1 = [1,2,3]
list1[0] → 1
list1[-1] → 3 下標負數表示倒數第幾項
- 遍歷,訪問列表中每一項
for i in ['小明', '小紅', '小青']:
print(i)
- 遍歷,迴圈下標。 場景 修改。
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分支),先把程式的大概結構寫出來,再去寫細節。
第一遍程式碼以模仿為主,剛開始誰都不知道怎樣去寫,會有歧義和可能。所以我們第一次只要根據答案抄一遍,想清楚思路。 第二遍比葫蘆畫瓢,舉一反一,自己完整解決問題,初步具備程式設計思想和熟練度。 第三遍以後,專案越來越複雜,重複運用之前的知識點,知識點越來越熟練。