Python/기초

[Python] 집합

쇼미요미 2022. 5. 1. 20:58
728x90

안녕하세요. 쇼미요미입니다.

 

오늘은 집합에 대해 알아보도록 하겠습니다.

예전에 중학교 1학년 수학에서 배운 집합과 비슷한 형태라고 생각하시면 됩니다.

 

 

1. 정의

- 집합에 관련된 것들을 쉽게 처리하기 위해 만들어진 자료형

- 중복을 허용하지 않음

- 순서가 없음

- 데이터 분석 시 용이하다고 함

 

2. 집합으로 묶기

s1 = set([1,2,3])
s2 = set("abcd")

 

3. 집합 출력하기

- 순서와 중복이 허용되지 않음

s2 = set("Hello")
print(s2)

>>> {'e', 'l', 'o', 'H'}

 

4. 교집합

- 두 개의 집합에서 중복되는 요소만 출력

 

4-1) '&' 로 교집합 구하기

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print(s1 & s2)

>>> {4, 5, 6}

4-2) intersection으로 교집합 구하기

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print(s1.intersection(s2))

>>> {4, 5, 6}

 

5. 합집합

- 두 개의 집합에서 모든 요소 출력

 

5-1) '|' 로 합집합 구하기

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print(s1 | s2)

>>> {1, 2, 3, 4, 5, 6, 7, 8, 9}

5-2) union으로 합집합 구하기

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print(s1.union(s2))

>>> {1, 2, 3, 4, 5, 6, 7, 8, 9}

 

6. 차집합

- (A - B)일 경우 B와 중복되는 요소를 제외한 A의 요소만 출력

 

6-1) '-' 로 차집합 구하기

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print(s1 - s2)

>>> {1, 2, 3}

 

6-2) difference로 차집합 구하기

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print(s1.difference(s2))

>>> {1, 2, 3}

 

7. 요소 추가하기 : add

7-1) 1개만 추가하기

s1 = set([1, 2, 3])
s1.add(4)
print(s1)

>>> {1, 2, 3, 4}

 

7-2) 여러 개 추가하기

s1 = set([1, 2, 3])
s1.update([4, 5, 6])
print(s1)

>>> {1, 2, 3, 4, 5, 6}

 

8. 요소 삭제하기 : remove

- 1개만 삭제 가능

s1 = set([1, 2, 3])
s1.remove(2)
print(s1)

>>> {1, 3}

 

728x90