➣ Reading Time: 7 minutes

前言

有時候我們會需要清除 list 裡面的特定內容,這篇有 list 清除相關內容的總整理,
包含 remove, pop, del, clear 的相關用法。

移除特定元素 list.remove(element)

list = ['cat', 'dog', 'dog', 'pig', 'dog']
list.remove('dog')
  • 輸出結果為: [‘cat’, ‘dog’, ‘pig’, ‘dog’]
    > 特別注意我們只會清除最先找到的「第一個」相符元素

如果有要完全清除該元素的需求,可以先使用搜尋的方式:

target = 'dog'
list = ['cat', 'dog', 'dog', 'pig', 'dog']
while(target in list):
    list.remove(target)
  • 輸出結果為: [‘cat’, ‘pig’]

移除特定位置 list.pop(index)

list = ['cat', 'dog', 'dog', 'pig', 'dog']
list.pop(3)
  • 輸出結果為: [‘cat’, ‘dog’, ‘dog’, ‘dog’]
    依照 0, 1, 2, 3, 4 的順序,我們移除了第3個欄位的元素。

其他 pop 常見用法 – pop(0) 移除第一個欄位,queue 常用

queue 的定義是先進先出,也就是說「先進來」的會優先拿掉,
我們可以結合 append() 與 pop(0) 的這兩個功能,
就能夠簡單實作出一個 queue。

其他 pop 常見用法 – pop() 移除最後一個欄位 (等於 pop(-1)),stack 常用

stack 的定義是先進後出,也就是說「後進來」的會優先拿掉,
我們可以結合 append() 與 pop() 或 pop(-1) 的這兩個功能,
就能夠簡單實作出一個 stack。

移除特定位置(進階) del list[index]

del 的用法與 pop 類似,不同的地方在於 del 不回傳值而是直接修改原 list,

list = ['cat', 'dog', 'dog', 'pig', 'dog']
del list[3]
  • 輸出結果為: [‘cat’, ‘dog’, ‘dog’, ‘dog’]
    依照 0, 1, 2, 3, 4 的順序,我們移除了第3個欄位的元素。
    不同於pop的地方在於使用 del,我們不需要用一個參數去等於這個函數的結果。

del 進階用法,比 pop 更靈活的刪除特定範圍位置

del 有 pop 做不到的功能,就是能夠直接指定欄位進行刪除,

  • 例如:del list[0:2] ,刪除位置 0, 1 的元素
list = ['cat', 'dog', 'dog', 'pig', 'dog']
del list[0:2]
  • 輸出結果為: [‘dog’, ‘pig’, ‘dog’]

  • 例如:del list[:] ,等於直接刪除全部元素,用法等同於 clear()

list = ['cat', 'dog', 'dog', 'pig', 'dog']
del list[:]
  • 輸出結果為: []

將 list 完全清空 list.clear()

list = ['cat', 'dog', 'dog', 'pig', 'dog']
list.clear()
  • 輸出結果為:[]
    我們將 list 完全清空

Reference

https://www.programiz.com/python-programming/methods/list/clear
https://www.programiz.com/python-programming/methods/list/remove
https://www.programiz.com/python-programming/methods/list/pop
https://stackoverflow.com/questions/1157106/remove-all-occurrences-of-a-value-from-a-list
https://www.delftstack.com/zh-tw/howto/python/what-is-difference-between-del-remove-and-pop-on-python-lists/

 ⭐Python 基礎用法 相關文章整理⭐:
1.【Python】python list 清除, 移除內容元素 remove, pop, del, clear相關用法整理 sample code (內含範例程式碼)
2.【Python】寫模組 module、package 總整理 Importing files from different folder
3.【Python】python assert (斷言) 用法 sample code (內含範例程式碼)
4.【Python】python 一行 if else 語法 (one line if else) sample code (內含範例程式碼)
⭐Python 字串處理 相關文章整理⭐:
1.【Python】python string format str.format 總整理
⭐Python 檔案處理相關文章整理⭐:
1.【Python】python 開關檔範例 與 程式模板 with open / file open sample code
2.【Python】取出檔案名稱 (含副檔名、不含副檔名) os path basename split 取出 檔名 路徑 不要副檔名 sample code
3.【Python】在 python 中利用 os.chmod 更改檔案的權限 chmod 777
4.【Python】利用 shutil 來複製檔案 shutil copy file
5.【Python】python 建立資料夾範例 mkdir os.makedirs() sample code
6.【Python】python 移除資料夾範例 rmdir shutil.rmtree() sample code
7.【Python】確認檔案是否存在 os.path.isfile / 確認資料夾是否存在 os.path.isdir sample code is folder / file exist
⭐Python 系統偵測 相關文章整理⭐:
1.【Python】python pyinotify sample code 偵測指定路徑底下的文件變化 (內有範例程式碼)
⭐Python 平行運算 相關文章整理⭐:
1.【Python】python pooling multiprocess – 用多核心來執行程式 sample code (內含範例程式碼)
2.【Python】python thread multiprocess 比較總整理
⭐Python 測試程式 相關文章整理⭐:
1.【Python】python 測試程式 – 利用 doctest 測試 python testcase 的優雅寫法,適用於 leetcode (doctest in function,搭配 function 的用法)
2.【Leetcode】python – 利用 doctest 測試 leetcode python testcase 的優雅寫法 (doctest in class,搭配 class 的用法)