ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬의 자료형 - 집합
    Python/study 2013. 12. 18. 01:33

    ※ 주의사항

    아래 공격 코드는 연구 목적으로 작성된 것이며, 허가 받지 않은 공간에서는 테스트를 절대 금지합니다.

    악의 적인 목적으로 이용할 시 발생할 수 있는 법적 책임은 자신한테 있습니다. 이는 해당 글을 열람할 때 동의하였다는 것을 의미합니다.

    해당 문서의 저작권은 해당 저자에게 모두 있습니다. 다른 용도로 사용할 시 법적 조치가 가해질 수 있습니다.

     

    상세 분석


    이번에는 집합에 대하여 알아보도록 하겠습니다.


    간단합니다. 그냥 우리가 학교다니면서 수학시간에 배운 집합의 개념이랑 똑같습니다. 교집합, 차집합, 합집합 같은 개념들이 나옵니다. 간단한 예제를 통해서 알아보도록 하겠습니다.



    set() 함수를 이용하여 집합을 생성하였습니다. 맨 처음으로 num이라는 공간에는 숫자들의 집합을 생성해봤습니다. 

    정리 30) num = set([1,2,3,4,5]) : 집합은 set(요소)와 같은 형식으로 생성합니다.

    다음에는 s라는 공간에 큰따옴표로 묶은 문자열 "Hello"를 넣어봤습니다. 출력해보았더니 'H','e,','l','o' 와 같은 형식으로 출력이됩니다. 저는 분명히 Hello를 넣었는데 'l'이 하나 사라졌습니다. 그렇습니다. 집합에서는 중복되는 값을 허용하지 않습니다. 오직 유일한 요소들로만 집합을 생성할 수가 있습니다.

    정리 31) num = set("Hello") -> set(['H','e','l','o']) : 집합의 요소는 중복을 허용하지 않습니다.

    그리고 다음 명령으로 s[0]을 주어 집합 s의 첫번째 요소를 출력해보려고 시도했습니다.
    하지만 결과는 에러였습니다. 'set' object does not support indexing이라는 문구가 출력되었습니다.
    그렇습니다. 집합에서는 인덱싱이라는 개념이 없습니다. 그냥 요소가 들어있는 것이지 순서는 중요하지 않다는 것입니다.

    정리 32) s[0] -> error : 집합에서는 인덱싱의 개념이 없습니다.

    그리고 앞에서 "Hello"라는 문자열이 되지 않아서 문자열은 어떻게 넣을까 잠시 생각해보았습니다.
    그리고 숫자를 넣을 때 처럼 괄호안에 대괄호를 열고 그 안에다가 문자열을 요소로 집어넣어봤습니다.
    그 결과 문자열이 요소로 자리잡은 것을 확인할 수가 있었습니다. 이것은 요소로 문자열 하나만 들어가도 적용이 되었습니다.

    그럼 이제 집합을 생성하는 방법은 다 알아본 것입니다. 이제 집합들을 이용한 연산을 해보도록 하겠습니다.


    g1은 a 와 b의 합집합입니다. 따라서 결과로 중복을 제외한 a와 b의 모든 요소가 집합으로 생성된 것을 확인할 수 있습니다.
    g2는 a 와 b의 교집합입니다. 따라서 a와 b에 둘 다 있는 요소들이 집합으로 생성된 것을 확인할 수 있습니다.
    g3는 a 와 b의 차집합입니다. 즉, a에는 있지만 b에는 없는 요소들이 집합으로 생성된 것을 확인할 수 있습니다.
    g4는 b 와 a의 차집합입니다. 이번에는 b에는 있지만 a에는 없는 요소들이 집합으로 생성된 것을 확인할 수 있습니다.
    g5는 a 와 b의 대칭 차집합입니다. a나 b 중 하나에만 있는, 그러니까 합집합에서 교집합을 뺀 것과 같은 결과입니다.

    마지막으로 집합에서 사용되는 함수들을 알아보도록 하겠습니다.


    함수들은 세가지로 아주 간단합니다. 
    .add()함수는 하나의 요소만 추가할 때 사용합니다.
    .update()함수는 여러개의 요소를 추가할 때 사용합니다.
    .remove()함수는 집합의 요소를 제거할 때 사용합니다.

    이것으로 집합에 대하여 알아보았습니다.

    정리모음

    정리 30) num = set([1,2,3,4,5]) : 집합은 set(요소)와 같은 형식으로 생성합니다.
    정리 31) num = set("Hello") -> set(['H','e','l','o']) : 집합의 요소는 중복을 허용하지 않습니다.
    정리 32) s[0] -> error : 집합에서는 인덱싱의 개념이 없습니다.

    참고 URL 및 도서

    - 파이썬 완벽 가이드, 데이비드 M. 비즐리 저, 2012년, 인사이트 펴냄


     

    'Python > study' 카테고리의 다른 글

    파이썬의 함수  (0) 2013.12.18
    파이썬의 반복문  (0) 2013.12.18
    파이썬의 파일 입출력  (0) 2013.12.18
    파이썬의 조건문  (0) 2013.12.18
    파이썬의 자료형 - 사전  (0) 2013.12.18
    파이썬의 자료형 - 튜플  (0) 2013.12.18
    파이썬의 자료형 - 리스트  (0) 2013.12.18
    파이썬의 자료형 - 문자열(추가)  (0) 2013.12.18
    파이썬의 자료형 - 문자열  (1) 2013.12.13
    파이썬의 자료형 - 숫자형  (2) 2013.12.11
Designed by Tistory.