요소 삭제

Python SELF KO
레벨 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_set 집합이 del 연산자를 사용하여 삭제됩니다. 이후 my_set에 접근하려는 모든 시도는 NameError 오류를 유발합니다, 왜냐하면 객체가 더 이상 존재하지 않기 때문입니다.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION