수학 시간에 배운 '집합(set)' 개념을 떠올리면 이해가 훨씬 쉬워집니다. 파이썬의 세트(Set)는 수학의 집합과 동일한 개념을 가진 자료구조로, 다양한 요소들로 구성되며 요소 사이에는 순서가 정의되어 있지 않습니다. 세트에서는 요소를 자유롭게 추가하거나 삭제할 수 있고, 요소를 순회(iterate)할 수도 있으며, 합집합·교집합·차집합과 같은 표준 집합 연산도 손쉽게 수행할 수 있습니다.
이 글에서는 주어진 세트에서 요소를 제거하는 방법을 알아봅니다. 여기서는 pop() 메서드를 활용하는데, pop()은 파이썬의 내장 메서드로 세트에 담긴 요소를 하나씩 꺼내어(pop) 제거하는 역할을 합니다. 참고로 세트는 순서가 없는 자료구조이기 때문에 pop()이 어떤 요소를 먼저 제거할지는 실행 시점에 임의로 결정됩니다.
예제
A = [2, 9, 80, 115, 22, 120]
출력 결과
NEW SET IS ::>
{9, 80, 115, 22, 120}
{80, 115, 22, 120}
{115, 22, 120}
{22, 120}
{120}
set()
알고리즘
1단계: 세트를 생성한다. 2단계: pop() 함수를 사용한다. pop() 메서드는 세트에서 요소를 하나 제거하고 해당 값을 반환한다.
예제 코드
# Python program to remove elements from set
def removeelement(set1):
print("NEW SET IS ::>")
while set1:
set1.pop()
print(set1)
# Driver Code
set1 = set([22, 120, 130, 115, 80, 9])
removeelement(set1)
실행 결과
NEW SET IS ::>
{9, 80, 115, 22, 120}
{80, 115, 22, 120}
{115, 22, 120}
{22, 120}
{120}
set()
코드 동작 원리
while set1: 조건문은 세트가 비어 있지 않은 동안 반복을 계속합니다. 매 반복마다 pop()이 세트에서 요소를 하나씩 제거하고, 남아 있는 세트의 상태를 출력합니다. 결국 모든 요소가 제거되면 세트는 빈 세트인 set()이 되며, while 조건이 거짓이 되어 반복문이 종료됩니다.
함께 알아두면 좋은 세트 요소 제거 메서드
pop() 외에도 파이썬은 세트에서 요소를 제거하는 다양한 방법을 제공합니다.
- remove(x): 지정한 요소 x를 제거하며, 요소가 존재하지 않으면 KeyError를 발생시킵니다.
- discard(x): 지정한 요소 x를 제거하지만, 요소가 없어도 오류를 발생시키지 않습니다.
- clear(): 세트의 모든 요소를 한 번에 제거하여 빈 세트로 만듭니다.
상황에 맞는 메서드를 선택하면 더 안전하고 가독성 높은 코드를 작성할 수 있습니다.