刪除元素

Python SELF TW
等級 9 , 課堂 6
開放

6.1 函數 remove()discard()

在 Python 中,集合提供多種方法來刪除元素。下面我們會看看 remove()discard()pop()clear() 方法,以及使用運算符 del 來整個刪除集合。每個方法都有其特殊性和適用場景。

兩個最常見的刪除元素的方法是 remove()discard()

方法 remove()

方法 remove() 可以刪除集合中的特定元素。如果元素不存在於集合中,則會引發 KeyError 錯誤。


my_set = {1, 2, 3, 4, 5}
my_set.remove(3)
print(my_set)  # 輸出: {1, 2, 4, 5}
            
# 如果元素不存在於集合中,會引發錯誤
my_set.remove(6)  # KeyError: 6
        

方法 discard()

方法 discard() 也用於刪除集合中的特定元素,但與 remove() 不同的是,如果元素不存在於集合中,它不會引發錯誤。


my_set = {1, 2, 3, 4, 5}
my_set.discard(3)
print(my_set)  # 輸出: {1, 2, 4, 5}
            
# 如果元素不存在於集合中,不會出錯
my_set.discard(6)
print(my_set)  # 輸出: {1, 2, 4, 5}
        

6.2 函數 pop()clear()

還有一些常用的函數如 pop()clear()

方法 pop()

方法 pop() 刪除並返回集合中的隨機元素。如果集合是空的,則會引發 KeyError 錯誤。


my_set = {1, 2, 3, 4, 5}
removed_element = my_set.pop()
print(removed_element)   # 輸出: 任意一個集合中的元素,比如 1
print(my_set)  # 輸出: 剩餘的集合元素,比如 {2, 3, 4, 5}
            
# 如果集合是空的,會引發錯誤
empty_set = set()
empty_set.pop()  # KeyError: 'pop from an empty set'
        

範例: 使用 pop() 刪除所有集合中的元素

方法 pop() 可以在循環中使用,依次刪除集合中的所有元素,直到其變為空集。


my_set = {1, 2, 3, 4, 5}
print("原始集合:", my_set)
            
while my_set:
    removed_element = my_set.pop()
    print(f"刪除的元素: {removed_element}, 剩餘元素: {my_set}")
            
print("集合已空:", my_set)
        

輸出


原始集合: {1, 2, 3, 4, 5}
刪除的元素: 1, 剩餘元素: {2, 3, 4, 5}
刪除的元素: 2, 剩餘元素: {3, 4, 5}
刪除的元素: 3, 剩餘元素: {4, 5}
刪除的元素: 4, 剩餘元素: {5}
刪除的元素: 5, 剩餘元素: set()
集合已空: set()
        

方法 clear()

方法 clear() 刪除集合中的所有元素,使其成為空集。

範例


my_set = {1, 2, 3, 4, 5}
my_set.clear()
print(my_set)  # 輸出: set()
        

6.3 使用運算符 del

運算符 del 在 Python 中用於刪除對象。當處理集合時,運算符 del 可以用於整個刪除集合,釋放內存。以下是一些使用運算符 del 來處理集合的例子。

刪除集合

當運算符 del 用於刪除一個集合時,這個集合就不再存在,所有的元素都會從內存中刪除


my_set = {1, 2, 3, 4, 5}
print("原始集合:", my_set)
            
# 刪除集合
del my_set
            
# 嘗試訪問已刪除的集合會引發錯誤
# print(my_set)  # NameError: name 'my_set' is not defined
        

在這個例子中,集合 my_setdel 運算符刪除。之後,任何嘗試訪問 my_set 的操作都會引發 NameError,因為對象已經不存在。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION