一、刪除單個元素
Python的list數據類型提供了多種刪除單個元素的方式。其中,pop()方法是最常用的一種方式。該方法可以刪除list中指定下標的元素,如果不指定下標,則默認刪除最後一個元素。使用pop()方法刪除元素後,該方法會返回被刪除的元素,所以我們可以將返回值存儲起來以備後續使用。
a = [1, 2, 3, 4] print(a.pop()) # 輸出 4,並刪除a中最後一個元素 print(a) # 輸出 [1, 2, 3]
除了pop()方法,還有一種刪除單個元素的方式是使用del語句。該語句可以刪除list中指定下標的元素,也可以刪除從下標開始到結束的一段元素。使用del語句刪除元素後,沒有返回值。
a = [1, 2, 3, 4] del a[1] # 刪除a中下標為1的元素,即2 print(a) # 輸出 [1, 3, 4] b = [1, 2, 3, 4] del b[1:3] # 刪除a中下標為1和2的元素,即2和3 print(b) # 輸出 [1, 4]
二、刪除多個元素
刪除多個元素有兩種方式,一種是使用del語句,一種是使用切片(slice)。
使用del語句刪除多個元素的時候,需要使用for循環遍歷要刪除的元素下標,一個一個刪除。
a = [1, 2, 3, 4, 5, 6] to_remove = [1, 3, 5] for i in to_remove: del a[i] # 刪除下標為1、3、5的元素 print(a) # 輸出 [1, 3, 5]
使用切片刪除多個元素的時候,可以使用Python的slice功能,直接在list中傳入slice對象,即可刪除指定的元素。
a = [1, 2, 3, 4, 5, 6] to_remove = [1, 3, 5] a = [i for j, i in enumerate(a) if j not in to_remove] print(a) # 輸出 [1, 3, 5]
三、刪除滿足條件的所有元素
要刪除滿足條件的所有元素,可以使用Python的filter函數和lambda表達式。filter函數會返回一個新的list對象,其中只包含滿足條件的元素。
a = [1, 2, 3, 4, 5, 6] b = list(filter(lambda x: x%2==0, a)) # 刪除a中所有偶數元素 print(b) # 輸出 [2, 4, 6]
當然,我們也可以使用for循環遍歷要刪除的元素下標,一個一個刪除。
a = [1, 2, 3, 4, 5, 6] to_remove = [1, 3, 5] for i in reversed(to_remove): del a[i] print(a) # 輸出 [1, 3, 5]
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/255059.html