본문 바로가기
Language/python

[Python] Set

by 모너아링 2023. 4. 11.

집합과 관련된 것을 쉽게 처리하기 위해 만든 자료형

 

set의 특징

  • 중복을 허용하지 않는다
  • 순서가 존재하지 않는다 ⇒ 인덱스로 원소 값에 접근할 수 없다.

 

set 생성

# set 키워드 이용
s1 = set([1, 2, 3]) # {1, 2, 3}

s2 = set("Hello") # {'e', 'H', 'l', 'o'}

 

set 연산

  1. 집합 연산
a = set([0, 1, 2])
b = set([1, 2, 3, 4])

# union (합집합)
print(a | b)        # {0, 1, 2, 3, 4}
print(a.union(b))   # {0, 1, 2, 3, 4}
a |= b              # a = {0, 1, 2, 3, 4}

# intersection (교집합)
print(a & b)             # {1, 2}
print(a.intersection(b)) # {1, 2}
a &= b                   # a = {1, 2}
a.intersection_update    # a = {1, 2}

# difference (차집합)
print(a - b)           # {0}
print(a.difference(b)) # {0}
a.difference_update(b) # a = {0}

# symmetric_difference (대칭 차집합)
print(a ^ b)                     # {0, 3, 4}
print(a.symmetric_difference(b)) # {0, 3, 4}
a.symmetric_difference_update(b) # {0, 3, 4}

2. set 변경

a = {1, 2, 3}

# 원소 추가
a.add(4) # {1, 2, 3, 4}
b = {2, 3, 4, 5}
a.update(b) # a = {1, 2, 3, 4, 5} # 여러 데이터를 한 번에 추가

# 원소 삭제
a.remove(2) # {1, 3, 4}
a.discard(1) # {3, 4} # 없어도 에러 발생하지 않음

a = {1, 2, 3, 4, 5}
b = {2, 3, 4, 5}
print(a.issubset(b)) # Flase # a가 b의 부분집합인가?
print(b.issubset(a)) # True # b가 a의 부분집합인가?
print(a.issuperset(b)) # True # a가 b를 포함하고 있는가?
print(b.issuperset(a)) # False # b가 a를 포함하고 있는가?

3. 원소 탐색

a = {0, 1, 2, 3, 4}
print(0 in a) # True
print(5 in a) # False
print(5 not in a) # True

'Language > python' 카테고리의 다른 글

[Python] Deep copy & shallow copy  (0) 2023.04.11
[Python] Dictionary  (0) 2023.04.11
[Python] Tuple  (0) 2023.04.11
[Python] List  (0) 2023.04.11
[Python] 2차원 리스트 정렬  (0) 2023.03.19