➣ 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 (內含範例程式碼)
5.【Python】lambda 與 def function 使用方法與比較整理(內含範例程式碼)
6.【Python】python map 使用方法 與 其他寫法比較整理 (內含範例程式碼) sample code
7.【Python】python zip 使用方法 與 其他寫法比較整理 (內含範例程式碼) sample code
⭐Python 字串處理 相關文章整理⭐:
1.【Python】python print 變數的值 & 變數名稱 方法總整理
2.【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 偵測指定路徑底下的文件變化 (內有範例程式碼)
2.【Python】python 利用 argparse 使程式執行時可帶參數 (內附範例程式碼) sample code
⭐Python 平行運算 相關文章整理⭐:
1.【Python】threading – 建立多執行緒來執行程式 (內含範例程式碼) sample code
2.【Python】multiprocessing – 用多核心來執行程式 (內含範例程式碼) sample code
3.【Python】multiprocessing pool, map, apply_async – 用多核心來執行程式並取得結果 (內含範例程式碼) sample code
4.【Python】python thread multiprocess 比較總整理
5.【Python】python pooling multiprocess – 用多核心來執行程式 sample code (內含範例程式碼)
⭐Python 測試程式 相關文章整理⭐:
1.【Python】python 測試程式 – 利用 doctest 測試 python testcase 的優雅寫法,適用於 leetcode (doctest in function,搭配 function 的用法)
2.【Leetcode】python – 利用 doctest 測試 leetcode python testcase 的優雅寫法 (doctest in class,搭配 class 的用法)
⭐Python Chatbot 相關文章整理⭐:
1.【Chatbot】(全圖文說明) LINE Developers bot 機器人註冊與設定
2.【Chatbot】(全圖文說明) ngrok 本地伺服器設定方法 – LINE bot local server
3.【Chatbot】Dialogflow API 串接 python 的方法 (內含範例程式碼)
4.【Chatbot】[講義分享] 手把手實作line機器人 (linebot API 運用)
⭐Python Google Colab (Colaboratory) 相關文章整理⭐:
1.【Colab】Python colab 上傳檔案的方法 (內含範例程式碼) upload files
2.【Colab】Python colab 連接 google 雲端硬碟取用資料 (內含範例程式碼) mount google drive
⭐Python 其他筆記 相關文章整理⭐:
1.【Python】anaconda 更新 (upgrade) python 3.8 版本筆記
2.【Sublime】Sublime 將縮排 “tab” 改成 4格空白 的方法 (圖文說明) sublime indent 4 spaces
3.【Sublime】Python 縮排小技巧 (很爛但實用) 快速將 tab 改成「4格空白」的方法
⭐【喜歡我的文章嗎? 幫忙按讚除了鼓勵外,我也會將部分所得捐出!
如果喜歡我的文章,請幫我在下方【按五下Like】 (Google, Facebook 免費註冊),會由 「LikeCoin」 贊助作者鼓勵繼續創作,扣除掉網站本身經營的成本 (可惜目前還是虧本的),我會將 【50% 收益全部捐出】 並公開發文,讀者們「只需幫忙按讚,完全不用出錢」哦!

likecoin-steps