파이썬의 집합(set)은 중복을 허용하지 않고 고유한 원소들로 이루어진 컬렉션입니다. 집합은 중괄호 {}를 사용하여 정의하며, 리스트나 튜플과는 달리 순서가 없습니다. 집합은 원소들 간의 관계를 파악하고 고유한 값들을 저장할 때 유용하며, 집합 연산을 지원하여 데이터 처리를 간편하게 만듭니다.

ㅡㅡㅡㅡㅡㅡㅡ목차ㅡㅡㅡㅡㅡㅡㅡ
1. 집합 | set() 개념 및 사용 방법
2. 집합 | set() 메서드
- add() - 하나의 원소를 집합에 추가
- remove() - 집합에서 원소 제거
- union() - 두 집합의 합집합 반환
- intersection() - 두 집합의 교집합 반환
- difference() - 두 집합의 차집합 반환
- update() - 여러 원소를 집합에 추가
- clear() - 모든 원소를 집합에서 제거
- discard() - 집합에서 원소를 제거, 해당 원소가 없을 시 동작 미실행
- copy() - 집합의 복사본 반환
3. 집합 | set() 활용 예제
- 교집합, 합집합, 차집합 구하기
- 리스트에서 중복된 원소 제거
- 두 리스트의 중복된 원소 찾기
1. 집합 | set() 개념 및 사용 방법
- 파이썬의 집합(set)은 중복된 값을 허용하지 않는 자료구조로, 고유한 값들을 저장합니다.
- 집합은 순서가 없기 때문에 인덱스를 사용하여 원소에 접근할 수 없습니다.
# 중괄호를 사용하여 집합 생성
my_set = {1, 2, 3}
print(my_set) # 출력: {1, 2, 3}
# set() 함수를 사용하여 집합 생성
my_set = set([1, 2, 3])
print(my_set) # 출력: {1, 2, 3}
# 중괄호를 사용하여 집합 생성
my_set = {1, 2, 3}
print(my_set) # 출력: {1, 2, 3}
# set() 함수를 사용하여 집합 생성
my_set = set([1, 2, 3])
print(my_set) # 출력: {1, 2, 3}
2. 집합 | set() 메서드
2.1 add()
- 하나의 원소를 집합에 추가합니다.
s = set()
s.add(1)
print(s) # 출력: {1}
s = set()
s.add(1)
print(s) # 출력: {1}
2.2. remove()
- 집합에서 원소를 제거합니다.
- 만약 해당 원소가 집합에 없다면 KeyError를 발생시킵니다.
s = {1, 2, 3}
s.remove(2)
print(s) # 출력: {1, 3}
s = {1, 2, 3}
s.remove(2)
print(s) # 출력: {1, 3}
2.3 union()
- 두 집합의 합집합을 반환합니다.
- union() 대신 '|' 사용 가능
s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1.union(s2)) # 출력: {1, 2, 3, 4}
s3 = s1 | s2
print(s3) # 출력: {1, 2, 3, 4}
s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1.union(s2)) # 출력: {1, 2, 3, 4}
s3 = s1 | s2
print(s3) # 출력: {1, 2, 3, 4}
2.4 intersection()
- 두 집합의 교집합을 반환합니다.
- intersection() 대신 '&' 사용 가능
s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1.intersection(s2)) # 출력: {2, 3}
s3 = s1 & s2
print(s3) # 출력: {2, 3}
s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1.intersection(s2)) # 출력: {2, 3}
s3 = s1 & s2
print(s3) # 출력: {2, 3}
2.5 difference()
- 첫 번째 집합에서 두 번째 집합의 원소를 제거한 차집합을 반환합니다.
- difference() 대신 '-' 사용 가능
s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1.difference(s2)) # 출력: {1}
s3 = s1 - s2
print(s3) # 출력: {1}
s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1.difference(s2)) # 출력: {1}
s3 = s1 - s2
print(s3) # 출력: {1}
2.6 update()
- 여러 원소를 집합에 추가합니다.
s = {1, 2, 3}
s.update([4, 5])
print(s) # 출력: {1, 2, 3, 4, 5}
s = {1, 2, 3}
s.update([4, 5])
print(s) # 출력: {1, 2, 3, 4, 5}
2.7 clear()
- 모든 원소를 집합에서 제거합니다.
s = {1, 2, 3}
s.clear()
print(s) # 출력: set()
s = {1, 2, 3}
s.clear()
print(s) # 출력: set()
2.8 discard()
- 집합에서 원소를 제거합니다. (단, 해당 원소가 집합에 없을 시 동작을 수행하지 않음)
s = {1, 2, 3}
s.discard(4)
print(s) # 출력: {1, 2, 3}
s = {1, 2, 3}
s.discard(4)
print(s) # 출력: {1, 2, 3}
2.9 copy()
- 집합의 복사본을 반환합니다.
s = {1, 2, 3}
s_copy = s.copy()
print(s_copy) # 출력: {1, 2, 3}
s = {1, 2, 3}
s_copy = s.copy()
print(s_copy) # 출력: {1, 2, 3}
3. 집합 | set() 활용 예제
3.1. 교집합, 합집합, 차집합 구하기
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
# 교집합
print(a & b) # 출력: {3, 4}
# 합집합
print(a | b) # 출력: {1, 2, 3, 4, 5, 6}
# 차집합
print(a - b) # 출력: {1, 2}
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
# 교집합
print(a & b) # 출력: {3, 4}
# 합집합
print(a | b) # 출력: {1, 2, 3, 4, 5, 6}
# 차집합
print(a - b) # 출력: {1, 2}
3.2. 리스트에서 중복된 원소 제거
a = [1, 2, 2, 3, 4, 4, 5]
b = list(set(a))
print(b) # 출력: [1, 2, 3, 4, 5]
a = [1, 2, 2, 3, 4, 4, 5]
b = list(set(a))
print(b) # 출력: [1, 2, 3, 4, 5]
3.3. 두 리스트의 중복된 원소 찾기
list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]
list3 = list(set(list1) & set(list2))
print(list3) # 출력: [3, 4]
list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]
list3 = list(set(list1) & set(list2))
print(list3) # 출력: [3, 4]
728x90
'Python' 카테고리의 다른 글
[Python] 파이썬 공백 지우기 : strip() | replace() 함수 (60) | 2023.10.24 |
---|---|
[Python] 파이썬 startswith() | endswith() : 특정 문자열의 시작과 끝 확인하는 방법 (60) | 2023.10.23 |
[Python] 파이썬 올림(ceil) / 반올림(round) / 내림(floor) (61) | 2023.10.22 |
[Python] 파이썬 불(bool) : 자료형 참(True) 거짓(False) 정리 (52) | 2023.10.15 |
[Python] 파이썬 조건문 : if elif else 정리 (47) | 2023.10.14 |