본문 바로가기

파이썬/파이썬 언어 공부

파이썬 프로그래밍(8) - 집합 자료형

#집합 자료형

1. 사용

   'set()'를 사용하여 만들 수 있다. 괄호 안에 리스트나 문자열을 입력할 수 있다.

>>> set1 = set([1, 3, 5])
>>> set1
{1, 2, 3}
>>> set2 = set("Hello World")
>>> set2
{' ', 'H', 'W', 'd', 'e', 'l', 'o', 'r'}

 

2. 특징

  1. 중복을 허용하지 않는다.
  2. 순서가 없다.

  이 특징들에 따라 중복된 데이터는 제거하고 순서도 단순히 알파벳순으로 정렬되게 된다. 또한 집합 자료형은 이름대로 여러 집합들을 구할 때 유용하게 사용할 수 있다.

 

 

#집합 구하기

>>> set1 = set([1, 3, 5, 6, 7])
>>> set2 = set([2, 3, 4, 6, 8])

  아래 집합들은 위의 set1과 set2를 예시로 사용할 예정이다.

1. 교집합(& or intersection 함수)

  '&'(앰퍼센트)를 사용하여 교집합을 구할 수 있다.

>>> set1 & set2
{3, 6}

 

  또한 '(집합 자료형 1). intersection(집합 자료형 2)'를 사용할 수도 있다.

>>> set1.intersection(set2)
{3, 6}
>>> set2.intersection(set1)
{3, 6}

 

2. 합집합(| or union 함수)

  '|'(버티컬바)를 사용하여 합집합을 구할 수 있다.

>>> set1 | set2
{1, 2, 3, 4, 5, 6, 7, 8}

   '(집합 자료형 1). union(집합 자료형 2)'를 사용할 수도 있다.

>>> set1.union(set2)
{1, 2, 3, 4, 5, 6, 7, 8}
>>> set2.union(set1)
{1, 2, 3, 4, 5, 6, 7, 8}

 

3. 차집합(- or difference)

>>> set1 - set2
{1, 5, 7}

  '(집합 자료형 1). difference(집합 사용할 수도 있다.

>>> set1.difference(set2)
{1, 5, 7}
>>> set2.difference(set1)
{1, 5, 7}

 

 

#관련 함수

1. 1개 값 추가하기(add)

  기존의 set 자료형에 1개 값만을 추가할 때는 'add'함수를 사용한다. 

>>> set1 = set([1, 3, 5])
>>> set1.add(7)
>>> set1
{1, 3, 5, 7}

 

2. 여러 값 추가하기(update)

  여러 값을 한 번에 추가할 때는 'update'함수를 사용한다.

>>> set1 = set([1, 2])
>>> set1.update([3, 4])
>>> set1
{1, 2, 3, 4}

  update 함수를 통해서도 1개 값만을 추가할 수도 있다. 이때에도 리스트형으로 추가하여야 한다.

>>> set1 = set([1, 2])
>>> set1.update([3])
>>> set1
{1, 2, 3}

 

3. 값 제거하기(remove)

  특정한 값을 제거할 때 'remove'함수를 사용한다.

>>> set1 = set([1, 3, 4, 5])
>>> set1.remove(4)
>>> set1
{1, 3, 5}

 

 

(해당 자료는 '점프 투 파이썬'을 참고하여 정리하였습니다)