본문 바로가기
필기 노트/Python 기초

[Python 기초] 기본 자료형 : 집합 (set)

by misconstructed 2020. 7. 10.
728x90

이번에는 파이썬의 기본 자료형 중, 집합(set)에 대해 알아보겠습니다.

집합(set)

집합 자료형은 집합과 관련된 연산을 처리하기 위해 파이썬 2.3부터 지원하기 시작한 기본 자료형입니다.

집합 자료형은 set 키워드를 사용해서 생성이 가능합니다.

>>> s1 = set([1, 2, 3])
# {1, 2, 3}
>>> s2 = set('Hello')
# {'H', 'e', 'l', 'o'}
>>> s3 = set()

아무런 파라미터 없이 set()만으로 빈 집합을 생성할 수 있습니다.

집합 자료형의 특징은 다음과 같습니다.

  1. 원소의 중복을 허용하지 않습니다.
  2. 원소의 순서가 없습니다. (unordered)

순서가 없다는 두번째 특징 때문에 집합 자료형에서는 인덱스로 값을 접근할 수 없습니다.

인덱스로 접근하기 위해서는 집합을 리스트(list)나 튜플(tuple)로 형변환해서 사용해야 합니다.

>>> s = set([1, 2, 3])
>>> t = tuple(s)
>>> l = list(s)

집합의 연산

  1. 교집합 : & 연산이나 intersection() 함수를 사용하면 두 집합의 교집합을 구할 수 있습니다.
  2. 합집합 : | 연산이나 union() 함수를 사용하면 두 집합의 합집합을 구할 수 있습니다.
  3. 차집합 : - 연산이나 difference() 함수를 사용하면 두 집합의 차집합을 구할 수 있습니다.
  4. 원소 하나 추가하기 : add() 함수를 사용해서 한개의 원소를 추가할 수 있습니다.
  5. 원소 여러개 추가하기 : update() 함수를 사용해서 여러개의 원소를 추가할 수 있습니다.
  6. 특정값 제거하기 : remove() 함수를 사용해서 특정 원소를 삭제할 수 있습니다.
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
# {2, 3}
>>> s1.intersection(s2)
# {2, 3}
>>> s1 | s2
# {1, 2, 3, 4}
>>> s1.union(s2)
# {1, 2, 3, 4}
>>> s1 - s2
# {1}
>>> s2.difference(s1)
# {4}
>>> s1.add(99)
# {1, 2, 3, 99}
>>> s2.update([100, 101, 102])
# {2, 3, 4, 100, 101, 102}
>>> s1.remove(1)
# {2, 3, 99}

해당 게시물은 <점프 투 파이썬>을 읽고 제 나름대로 정리한 내용입니다!

더 구체적인 정보나, 추가적인 내용을 확인하고 싶으시면 <점프 투 파이썬>을 참고해주시기 바랍니다.

잘못된 부분 지적이나 피드백은 언제든지 환영입니다.

감사합니다 :)

 

 

728x90

댓글