프로그래밍을 하다 보면 중복을 제거하거나 특정한 조건에 맞는 데이터만을 저장하고 싶을 때가 있습니다. 이때 유용하게 사용할 수 있는 자료 구조가 바로 세트(set)입니다. 세트는 파이썬에서 기본적으로 제공하는 컬렉션(Collection) 타입 중 하나로, 중복을 허용하지 않는 집합 형태의 자료 구조입니다.
세트의 주요 특징에 대해 간략하게 정리 후, 예제들을 적용해보겠습니다.
📌 세트(set)의 주요 특징
1. 중복을 허용하지 않는다. 동일한 값을 여러 번 추가해도 한 번만 저장됩니다.
2. 순서가 없다. 리스트나 튜플과 달리, 인덱싱 및 슬라이싱을 할 수 없습니다.
3. 집합 연산이 가능하다. 합집합, 교집합, 차집합 등 집합 연산을 쉽게 사용할 수 있습니다.
4. 변경 가능한(mutable) 자료형이다. 값을 추가하거나 삭제할 수 있습니다.
1. 세트(set) 기본 생성 방법
- 세트는 중괄호 {}를 사용하여 생성합니다. 세트 내부 요소는 콤마(,)로 구분하며, 중복된 값은 자동으로 제거됩니다.
korea_set = {'서울', '인천', '동해', '삼척'}
print(korea_set)
[출력 값]
{'삼척', '동해', '서울', '인천'}
- 위 코드에서 {} 안에 여러 개의 문자열을 넣어 세트를 생성했습니다. 세트는 순서가 없으므로, 실행할 때마다 출력되는 순서가 달라질 수 있습니다.
2. 세트에 요소 추가하기
- 세트는 인덱스가 없기 때문에 특정한 위치에 요소를 삽입하거나 수정할 수 없습니다. 대신, add() 및 update() 메서드를 사용하여 값을 추가할 수 있습니다.
- add() : 단일 요소 추가. 그러나 이미 존재하는 값을 추가하면 아무런 변화가 없습니다.
- update() : 여러 개 요소 추가. 한 번에 여러 개의 요소를 추가할 수 있습니다.
korea_set = {'서울', '인천', '동해', '삼척'}
# add() : 단일 추가
korea_set.add('군산')
pirnt(korea_set)
# update() : 여러 항목 추가
new_set = {'고양', '평택'}
korea_set.update(new_set)
print(korea_set)
[출력 값]
{'서울', '동해', '군산', '삼척', '인천'}
{'서울', '고양', '동해', '군산', '삼척', '인천', '평택'}
3. 세트에서 요소 삭제하기
- 세트를 삭제하는 방법은 리스트와 거의 동일합니다.
- remove() : 특정 요소 삭제. 그러나 존재하지 않는 요소를 삭제하려 하면, KeyError가 발생합니다.
- discard() : 특정 요소 삭제 및 오류 방지. remove()와 달리, 삭제하려는 요소가 없어도 에러가 발생하지 않습니다.
- pop() : 임의의 요소 삭제. 따라서, 어떤 값이 삭제될 지 예측할 수 없습니다.
- clear() : 전체 요소 삭제. 세트의 모든 요소를 삭제하고 빈 세트로 만듭니다.
korea_set = {'서울', '인천', '청주', '성남', '정선'}
# remove() : 특정 값 제거
korea_set.remove('인천')
print(kore_set)
# discard() : 특정 값 제거(값 없어도 에러 발생x)
korea_set.discard('울산')
print(korea_set)
# pop() : 임의 제거
korea_set.pop()
print(korea_set)
# clear() : 전체 제거
korea_set.clear()
print(korea_set)
[출력 값]
{'성남', '정선', '서울', '청주'}
{'성남', '정선', '서울', '청주'} # 에러 발생 X
{'정선', '서울', '청주'}
set()
4. 세트의 반복문 활용
- 세트는 순서가 없지만, for문을 사용하여 요소를 하나씩 꺼낼 수 있습니다.
korea_set = {'경기', '충북', '충남', '강원'}
for city in korea_set:
print(city)
[출력 값]
충북
충남
경기
강원
5. 세트의 집합 연산
- 세트는 집합 연산을 쉽게 수행할 수 있다는 장점이 있습니다.
- | : 합집합(union)
- & : 교집합 (intersection)
- - : 차집합 (difference)
- ^ : 대칭 차집합 (symmetric difference)
A = {1, 2, 3, 4}
B = {3, 6, 7, 8}
print(A | B)
print(A & B)
print(A - B)
print(A ^ B)
[출력 값]
{1, 2, 3, 4, 6, 7, 8}
{3}
{1, 2, 4}
{1, 2, 4, 6, 7, 8}
지금까지 파이썬의 세트(set) 자료 구조에 대해 알아보았습니다.
간단하게 요약하면,
1. 세트는 중복을 허용하지 않으며, 순서가 없는 자료 구조입니다.
2. add(), update() 메서드를 사용하여, 세트에 요소를 추가할 수 있습니다.
3. remove(), discard(), pop(), clear() 메서드를 사용하여, 세트에서 요소를 삭제할 수 있습니다.
4. 집합 연산(합집합, 교집합, 차집합 등)이 손쉽게 가능합니다.
세트는 리스트, 튜플, 딕셔너리와 함께 자주 사용되는 자료 구조이므로, 각각의 차이점을 명확하게 이해하고 필요에 따라 적절히 활용하는 것이 중요합니다. 감사합니다:-)
# 컬렉션 타입(1) : 리스트
2025.01.22 - [데이터 분석 관련] - 파이썬 컬렉션 시리즈 (1) : 리스트(list) 완벽 가이드! 생성부터 활용까지 한눈에 정리
파이썬 컬렉션 시리즈 (1) : 리스트(list) 완벽 가이드! 생성부터 활용까지 한눈에 정리
1. 리스트(list)란?리스트는 여러 개의 값을 순서대로 저장할 수 있는 자료형으로, 대괄호[]를 사용하여 정의됩니다. 데이터의 중복을 허용하며, 값을 자유롭게 수정하고 삭제할 수도 있습니다.
cjangela.tistory.com
# 컬렉션 타입(2) : 튜플
2025.01.24 - [데이터 분석 관련] - [파이썬 기초] 컬렉션 타입(2) : 튜플(tuple) 생성, 슬라이싱, 수정, 언패킹
[파이썬 기초] 컬렉션 타입(2) : 튜플(tuple) 생성, 슬라이싱, 수정, 언패킹
1. 튜플(tuple)이란?튜플은 리스트(list)와 매우 유사하지만, 수정이 불가능하다는 차이점이 있습니다. 즉, 한 번 생성되면 값을 변경할 수 없는 '읽기 전용 리스트'라고 생각하면 됩니다. 그렇다면
cjangela.tistory.com
# 컬렉션 타입(3) : 딕셔너리
2025.01.24 - [데이터 분석 관련] - [파이썬 기초] 컬렉션 타입(3) : 딕셔너리(dictionary) 생성, 수정 및 삽입, 삭제, 메서드
[파이썬 기초] 컬렉션 타입(3) : 딕셔너리(dictionary) 생성, 수정 및 삽입, 삭제, 메서드
1. 딕셔너리(dictionary, dic)란?파이썬에서 가장 많이 사용되는 자료구조 중 하나가 바로 딕셔너리(Dictionary)입니다. 딕셔너리는 키(key) : 값(value) 쌍으로 이루어져 있으며, 데이터를 효율적으로 저장
cjangela.tistory.com
'데이터 분석 > Python' 카테고리의 다른 글
파이썬(Python) 연산자 총정리: 산술 연산자, 대입 연산자, 비교 연산자, 논리 연산자, 비트 연산자, 조건 연산자 (0) | 2025.01.30 |
---|---|
[파이썬 기초] 입출력 : input, print, escape, format, casting (0) | 2025.01.28 |
[파이썬 기초] 컬렉션 타입(3) : 딕셔너리(dictionary) 생성, 수정 및 삽입, 삭제, 메서드 (0) | 2025.01.24 |
[파이썬 기초] 컬렉션 타입(2) : 튜플(tuple) 생성, 슬라이싱, 수정, 언패킹 (0) | 2025.01.24 |
파이썬 컬렉션 시리즈 (1) : 리스트(list) 완벽 가이드! 생성부터 활용까지 한눈에 정리 (0) | 2025.01.22 |