set(집합)
set 는 중복을 허용하지 않는 변경 가능한 데이터 구조로, 수학에서의 집합과 유사한 개념을 제공한다. 순서가 없고, 각 요소는 고유해야 하며, 요소 간의 빠른 검색, 추가, 삭제를 지원한다.
데이터의 고유성을 보장하고, 중복된 값을 처리하거나 집합 연산이 필요한 경우에 유용하게 사용된다.
set의 주요 특징
- 중복 허용 안함 : 한 집합 내에서 동일한 값이 중복될 수 없다.
- 순서 없음 : 저장된 순서가 유지되지 않으며, 요소를 인덱스로 접근할 수 없다.
- 변경 가능 : 집합은 새로운 요소를 추가하거나 삭제할 수 있다.
- 빠른 연산 : 해시 테이블 기반으로, 원소의 추가/제거/검색이 평균적으로 매우 빠르다.
set 생성 방법
1️⃣ 방법 1 : 중괄호 {}를 사용
my_set = {1, 2, 3, 4, 5}
2️⃣ 방법 2 : set() 함수를 사용
my_set = set([1, 2, 3, 4, 5])
주요 연산
1️⃣ 요소 추가
my_set.add(6)
- add() 메서드를 사용해 집합에 요소를 추가할 수 있다.
2️⃣ 요소 삭제
my_set.remove(4)
my_set.discard(10)
- remove()와 discard() 메서드를 사용해 요소를 제거한다.
- remove()는 존재하지 않는 요소를 삭제하려 하면 오류가 발생하지만, discard()는 존재하지 않아도 오류가 발생하지 않습니다.
3️⃣모든 요소 제거
my_set.clear()
- clear() 메서드로 집합의 모든 요소를 제거할 수 있습니다.
집합 연산
파이썬의 set 는 수학적 집합 연산을 지원한다.
1️⃣ 합집합 (| 또는 union())
set1 = {1, 2, 3}
set2 = {3, 4, 5}
result = set1 | set2 # {1, 2, 3, 4, 5}
2️⃣ 교집합 (& 또는 intersection())
result = set1 & set2 # {3}
3️⃣ 차집합 (- 또는 difference())
result = set1 - set2 # {1, 2}
4️⃣ 대칭차집합 (^ 또는 symmetric_difference())
result = set1 ^ set2 # {1, 2, 4, 5}
- 두 집합 간에 서로 없는 요소만 포함.
요소 검사
집합 안에 특정 요소가 있는지 확인할 수 있다.
if 3 in set1:
print("3이 set1에 있습니다.")
중복 제거
리스트나 다른 자료형에서 중복을 제거할 때도 set을 사용할 수 있다.
my_list = [1, 2, 2, 3, 3, 4]
unique_items = set(my_list) # {1, 2, 3, 4}
'알고리즘' 카테고리의 다른 글
[파이썬] lambda(람다) 함수 (0) | 2024.10.30 |
---|---|
[파이썬] enumerate() 함수 (0) | 2024.10.29 |
[파이썬] zip() 함수 (0) | 2024.10.25 |
[파이썬] 딕셔너리(Dictionary), dict() (0) | 2024.10.25 |
[파이썬] set() (집합 함수) (0) | 2024.10.24 |