ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 자료형 - set
    NAN/Python 2021. 6. 4. 01:10
    728x90

     

     

    파이썬 자료형의 종류

     

    • 숫자 자료형
    • 문자열 자료형
    • 리스트 
    • 튜플
    • 딕셔너리
    • 집합 

     


     

     

    자료형 - Set

     

     

    파이썬에는 여러 형태의 자료 구조가 존재하는데 자료형 set이란,

     

    우리가 초, 중학교 수학 시간에 익히 들었던 '집합'을 의미한다.

     

     

    # set의 기본 형태
    
    x = set([1,2,3,(4,5)])
    
    print(x)
    
    {(4, 5), 1, 2, 3}

     

     

    변수 = set(['요소')] 의 형태로 구성되어 있으며,

     

    여태 살펴봤던 자료형의 타입이 그랬듯 set 역시 두드러지는 특징을 가지고 있는데 이는 다음과 같다.

     

     

    1. 무작위로 출력된다.
    2. 요소의 중복이 불가능하다.
    3. set안에 list, dictionary의 사용이 불가능하다.

     

    위의 예시에 set이 지정된 변수 x를 출력했을때 그 출력 값이 인덱스의 순서와 상관없이 출력된 것을 확인할 수 있는데

     

    이는 set 자료형이 가지는 특성이다. 

     

    리스트, 튜플의 형태에서는 인덱스 번호로 요소에 접근하였고, 딕셔너리에서는 key 값으로 접근하였는데

     

    인덱스의 순서와 상관 없이 출력이 되는 집합의 형태에서는 어떻게 요소에 접근할 수 있을까?

     

     

    x = set([1,2,3,(4,5)])
    
    j = list(x)
    
    o = tuple(x)
    
    print(j)
    print(o)
    
    [(4, 5), 1, 2, 3]
    ((4, 5), 1, 2, 3)

     

     

    set 자료형에는 인덱스나 key가 없기 때문에 리스트 혹은 튜플의 형태로 자료형을 변환하고 접근을 해야 한다.

     

     

     


     

    교집합, 합집합, 차집합

     

     

    모두가 알고 있듯 집합은 중복된 원소들의 모임인 '교집합'과 전체 원소의 모임 '합집합', 

     

    중복되지 않은 원소들의 모임 '차집합'으로 구분되는데 이는 파이썬에서도 마찬가지이다.

     

    1. 교집합은 intersection( )으로 간단히 '&'의 형태로 표현한다.
    2. 합집합은 union( )으로 ' | '을 사용하여 표현한다.
    3. 차집합은 difference( )으로 ' - '를 사용한다.

     

     

     

    intersection / &

     

     

    x = set([1,2,3,(4,5)])
    
    z = set([1,2,3,4,5,6,(4,5)])
    
    print(x & z)
    print(x.intersection(z))
    
    {(4, 5), 1, 2, 3}
    {(4, 5), 1, 2, 3}

     

    코드 실행 방법은 단순 특수문자를 사용할 수도 있고 변수. intersection(변수)의 형태로도 사용할 수 있다.

     

     

     

     

    union( )/ |

     

     

    x = set([1,2,3,(4,5)])
    
    z = set([1,2,3,4,5,6,(4,5)])
    
    print(x | z)
    print(x.union(z))
    
    {1, 2, 3, 4, 5, 6, (4, 5)}
    {1, 2, 3, 4, 5, 6, (4, 5)}

     

    마찬가지로 두 가지의 형태로 합집합을 출력할 수 있다.

     

     

     

     

    difference( )/ -

     

     

    x = set([1,2,3,(4,5)])
    
    z = set([1,2,3,4,5,6,(4,5)])
    
    print(z - x)
    print(z.difference(x))
    
    {4, 5, 6}
    {4, 5, 6}

     

    차집합은 말 그대로 집합의 뺄셈이기 때문에 대소 비교가 필요하다.

     

     

     


     

    집합 자료형에서 사용되는 함수

     

     

     

     

    요소 추가 - 변수. add( )

     

     

    x = set([1,2,3,(4,5)])
    
    x.add(7)
    
    print(x)
    
    {1, 2, 3, 7, (4, 5)}

     

     

     

     

     

    다중 요소 추가 - 변수. update( )

     

     

    x = set([1,2,3,(4,5)])
    
    x.update([7,8,9])
    
    print(x)
    {1, 2, 3, 7, (4, 5), 8, 9}

     

     

    add 함수는 하나의 값을 새롭게 추가하는 함수이기 때문에 소괄호 ( )로 감싸주는 형태로 끝났지만

     

    update( ) 함수는 여러 개의 값을 추가하는 것이기 때문에 대괄호 [ ]를 추가하여 감싸주어야 한다.

     

     

     

     

    특정 원소 제거 - 변수. remove( )

     

     

    x = set([1,2,3,(4,5)])
    
    x.update([7,8,9])
    
    x.remove(1)
    print(x)
    {2, 3, 7, (4, 5), 8, 9}

     

    set 자료형에서도 특정 원소를 제거할 때에는 변수.remove( ) 함수를 사용한다.

     

     

     


     

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

    [Python] 반복문 while, for  (0) 2021.06.06
    [Python] bool 연산자와 조건문  (0) 2021.06.06
    [Python] 자료형 - Dictionary  (0) 2021.06.02
    [Python] 자료형 - List, Tuple  (0) 2021.05.26
    [Python] 자료형 - 숫자 자료형  (0) 2021.05.22
Designed by Tistory.