위키북스 박응용 저 "점프 투 파이썬" 책을 읽고 정리한 내용입니다.

다소 잘못된 내용과 구어적 표현 이 포함되어 있을 수 있습니다.

집합은 키 없는 딕셔너리와 같다

  • 이것이 딕셔너리와 동일하게 {} 로 표현되는 이유이다.
  • 따라서 딕셔너리처럼 인덱스로 접근하지도 못하고 딕셔너리와는 다르게 키도 없기 때문에 키로 접근하지도 못한다.
  • 즉, 집합은 개별 요소에 접근할 수 있는 방법이 전혀 없다
  • 각각의 요소에 접근하지 못하기 때문에 요소들이 불변객체로 선언 되어야만 하는 것이다
  • 개별요소에 접근하기 위해서는 집합의 상태에서는 안되고 리스트나 튜플로 변환해서 접근 해야 한다

집합은 중복되는 요소를 가질 수 없다

  • 수학에서의 집합과 마찬가지이다
  • 따라서 리스트/튜플을 집합으로 변경하면 중복된 요소들이 하나로 정리 된다. 이것은 중복된 요소를 제거하는 메커니즘 으로도 이용된다

선언

a = {1, 2, 3, 4}
  • 키:벨류 쌍이 아닌 요소만 중괄호에 묶으면 집합이 된다
  • 집합의 요소도 불변객체여야 한다. 리스트를 요소로 가질 수 없다 이말이다

생성자

a = set()
a = set(iterable)
  • 인자를 안넣으면 빈 집합이 만들어진다
  • 반복가능한 객체를 넣으면 그 객체의 내용이 집합화되어 반환된다

교집합

a & b
a.intersection(b)
  • 두 잡합의 교집합을 구하는 연산이다

합집합

a | b
a.union(b)
  • 두 집합의 합집합을 구하는 연산이다

차집합

a - b
a.difference(b)
  • 두 집합의 차집합을 구하는 연산이다
  • 교집합과 합집합과는 다르게 차집합은 순서에 신경써야된다 (a - b, b - a는 다르다)