1 분 소요

※ 집합 (Set)

  • 교집합, 합집합, 차집합 지원
  • 원소의 중복을 허용하지 않음 > 원소의 종류를 나타내기 좋음
  • 원소의 순서가 존재하지 않음 > index가 없음


■ 집합 생성방법

  • { } 사용
  • 공집합 생성 시 set() 사용
> s = {1, 2, 3}
> s1 = set() # 공집합 생성


■ 집합의 연산

> s1 = {1, 2, 3, 4, 5}
> s2 = {3, 4, 5, 6, 7}

# 교집합
> s1 & s2
> s1.intersection(s2)
> s2.intersection(s1)
{3, 4, 5}

# 합집합 
> s1 | s2
> s1.union(s2)
> s2.union(s1)
{1, 2, 3, 4, 5, 6, 7}

# 차집합
> s1 - s2
> s1.difference(s2)
{1, 2}

> s2 - s1
> s2.difference(s1)
{6, 7}
# e.g. 집합 활용
# 원소의 uniqueness를 활용하는 경우
> L = [1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 6, 1, 1, 5]

> set(L)
{1, 2, 3, 4, 5, 6}

# 리스트 L에 있는 서로 다른 원소의 개수
> len(set(L)) # type conversion
6


■ 집합 관련 함수

□ .add() / .remove()

  • .add(): 집합에 원소 하나 추가
  • .remove(): 집합의 원소 제거
> s = set()
> s.add(2)
> s # {2}

> s.remove(지울 원소)


□ .update()

  • 집합에 원소 여러개 추가 하기
> s = {1, 2, 3}
> s.update({4,5})
> s
{1, 2, 3, 4, 5}

□ ^ (대칭차집합)

  • 서로 겹치지 않는 원소 출력
# e.g.
> {1,2,3,6}^{1,2,3,4,5}
{4, 5, 6} 출력

댓글남기기