如何在 Python 中從清單中刪除項目

了解如何從 Python 清單中刪除元素。掌握remove()、pop()、del 和clear 之間的區別,以及安全的索引錯誤處理。

在編輯器中嘗試此解決方案

概述

在管理佇列、解析配置或篩選資料集時,透過刪除項目來修改集合是一項基本任務。由於 Python 清單是可變的,因此您可以就地刪除元素。 Python 提供了多種刪除項目的方法,選擇正確的方法取決於您是要按值刪除、按索引刪除還是完全清除清單。

若要按值刪除項目,請使用“.remove(value)”方法。它搜尋列表並刪除該值的*第一次*出現。如果未找到該值,則會引發「ValueError」。要删除特定索引处的项目并检索其值,请使用“.pop(index)”方法(如果未提供索引,则默认为最后一个项目)。

如果要刪除索引處的元素而不保留其值,可以使用「del」語句(例如「del my_list[index]」)。要就地清除清單中的所有項目,「.clear()」方法是最有效的選擇。了解這些操作可以防止錯誤和記憶體洩漏問題。

程式碼和執行輸出

此腳本示範了使用remove() 按值刪除清單元素、使用pop() 和del 按索引刪除清單元素以及清除清單內容。

remove_list_items.py
在編輯器中嘗試
fruits = ["apple", "banana", "cherry", "banana", "date"]

# 1. Remove by value (deletes the first match only)
fruits.remove("banana")
print("After remove('banana'):", fruits)

# Handling ValueError safely
try:
    fruits.remove("orange")
except ValueError:
    print("Value 'orange' not found in list.")

# 2. Remove by index and retrieve item using pop()
popped_item = fruits.pop(1) # Removes index 1 ("cherry")
print(f"Popped: {popped_item} | List after pop:", fruits)

# 3. Delete by index without retrieving using del
del fruits[0] # Removes "apple"
print("After del index 0:", fruits)

# 4. Clear entire list in-place
fruits.clear()
print("After clear():", fruits)
端子輸出
After remove('banana'): ['apple', 'cherry', 'banana', 'date']
Value 'orange' not found in list.
Popped: cherry | List after pop: ['apple', 'banana', 'date']
After del index 0: ['banana', 'date']
After clear(): []

逐步實施

  • 使用 list.remove(value) 搜尋並刪除第一次出現的特定值。
  • 呼叫list.pop(index)刪除並傳回指定索引位置的元素。
  • 使用 del list[index] 語句可以直接依索引刪除元素或元素切片。
  • 呼叫 list.clear() 就地刪除所有元素,留下大小為 0 的空列表。

常見問題解答

pop() 和 del 有什麼不同?

pop() 刪除元素並傳回它,允許您將其指派給變數。 del 是一條從記憶體中刪除項目而不回傳它的語句。

如何從清單中刪除所有出現的值?

使用列表理解或 while 迴圈:list = [x for x in list if x != target_value]。如果修改不正確,在循環內呼叫remove() 可能會跳過項目。

相關主題

推薦的 Python 資源

透過相關的互動式教學、備忘單和程式碼比較來擴展您的知識。