본문 바로가기

Programming Language/Python

Ⅱ. 자료형 (6. 집합)

  • 집합(Set) = 집합에 관련된 것들을 쉽게 처리하기 위해 원소를 모아놓은 자료형.

# 원소들을 중괄호 {}로 둘러싼 형태입니다.

 

개념 형태
집합
(Set)

S = {a,b,c,...}
S = set(B)

S = 집합
a,b,c = 원소
B = 데이터
원소들 a,b,c를 모아놓은 집합 S를 만들어.
데이터B를 쪼개어 집합S를 만들어.

 

s = {1,2,3,4,5}
print(type(s))

<class 'set'>

 

b = [1,2,3,4,5]
s = set(b)
print(s)

{1, 2, 3, 4, 5}

 

 

 

 

6-(1) 집합의 기본 특징

  • 중복 허용X

: 집합의 원소들이 중복하는 것을 허용하지 않습니다.

☆중복 제거를 위한 필터로 사용됩니다.

 

s = set('Hello')
print(s)

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

 

  • 순서가 없음

: 집합의 원소들은 순서가 없습니다. (인덱스가 없기 때문에 사용할 수 없습니다.) 

# 순서가 없기 때문에 인덱싱과 슬라이싱을 지원하지 않습니다.

 

  • Mutable한 객체 + 원소는 Immutable한 데이터

: 집합의 원소는 변경할 수 없는 값을 가지기 때문에 리스트를 원소로 가질 수 없습니다.

# 집합은 mutable한 객체이지만 mutable한 원소를 가질 수 없음.

 

s = {1,2,[3,4,5]}
print(s)

Error

 

 

 

 

6-(2) 교집합

  • &
함수 내용
이름 &
설명 집합A와 집합B의 교집합을 만들어
형태 A&B
인자 A,B = 집합
반환 집합
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
s = s1&s2
print(s)

{4, 5, 6}

 

  • intersection
함수 내용
이름 intersection
설명 집합A와 집합B의 교집합을 만들어
형태 A.intersection(B)
인자 A,B = 집합
반환 집합
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
s = s1.intersection(s2)
print(s)

{4, 5, 6}

 

 

 

 

6-(3) 합집합

  • |
함수 내용
이름 |    참고로 | = shift + \
설명 집합A와 집합B의 합집합을 만들어
형태 A|B
인자 A,B = 집합
반환 집합
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
s = s1|s2
print(s)

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

 

  • union
함수 내용
이름 union
설명 집합A와 집합B의 합집합을 만들어
형태 A.union(B)
인자 A,B = 집합
반환 집합
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
s = s1.union(s2)
print(s)

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

 

 

 

 

6-(4) 차집합

  • 뺄셈 기호(-)
함수 내용
이름 -
설명 집합A에서 집합B를 빼.
형태 A-B
인자 A,B = 집합
반환 집합
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
a = s1-s2
b = s2-s1
print(a)
print(b)

{1, 2, 3}

{8, 9, 7}

 

  • difference
함수 내용
이름 difference
설명 집합A에서 집합B를 빼.
형태 A.difference(B)
인자 A,B = 집합
반환 집합
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
a = s1.difference(s2)
b = s2.difference(s1)
print(a)
print(b)

{1, 2, 3}

{8, 9, 7}

 

 

 

 

6-(5) 집합에 원소 추가하기

1) 원소 1개 추가하기

  • add
함수 내용
이름 add
설명 집합S에 원소x 1개를 추가해줘.
형태 S.add(x)
인자 S = 집합
x  = 원소 데이터
반환 집합
s = set([1,2,3])
s.add(4)
print(s)

{1, 2, 3, 4}

 

2) 원소 여러개 추가하기

  • update
함수 내용
이름 update
설명 집합S에 리스트L이 가지고 있는 요소들을 추가해줘.
형태 S.update(L)
인자 S = 집합
L  = 원소 리스트
반환 집합
s = set([1,2,3])
s.update([4,5,6])
print(s)

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

 

 

 

 

6-(6) 집합에 원소 제거하기

  • remove
함수 내용
이름 remove
설명 집합S에 원소x 1개를 제거해줘.
단, 존재하지 않는 원소라면 Error
형태 S.remove(x)
인자 S = 집합
x  = 원소 데이터
반환 집합
s = set([1,2,3])
s.remove(2)
print(s)

{1, 3}

 

 

 

 

 

*참고 : 점프 투 파이썬

'Programming Language > Python' 카테고리의 다른 글

Ⅱ. 자료형 (5. 딕셔너리)  (0) 2022.08.29
Ⅱ. 자료형 (4. 튜플)  (0) 2022.08.22
Ⅱ. 자료형 (3. 리스트)  (0) 2022.07.25
Ⅱ. 자료형 (2. 문자열)  (0) 2022.05.28
Ⅱ. 자료형 (1. 숫자형)  (0) 2022.04.27