• 2020. 6. 20.

    by. 윈썸지니

    반응형

    출처 : pixabay

    파이썬 집합 자료형의 요소 추가, 제거 등에 대해 알아봅니다.

    집합 자료형의 개념은 이전 포스팅에서 다루었습니다.

    집합 자료형이 무엇인지 궁금하다면 먼저 보고 오세요.

     

    [IT 이야기 공간/프로그램 언어 및 Database] - 파이썬 기초 데이터 유형 – 집합 ( Set ) 자료형

     

    파이썬 기초 데이터 유형 – 집합 ( Set ) 자료형

    파이썬의 자료형 집합( Set) 에 관한 내용 입니다. ● 집합 자료형은 ? 파이썬에서 집합 자료형은 2.3 버전 부터 지원하는 자료형 입니다. set은 우리가 수학에서 배운 집합의 개념과 비슷합니다. Set

    jinisbonusbook.tistory.com

    집합 요소값 추가하기

     

    집합 요소 값을 추가하는 메소드는 2가지가 있습니다.

    add() update() 가 있습니다.

    add() : 요소값 1개 추가
    update() : 요소값 여러 개 추가
    >>> x = {1, 2, 3}
    >>> type(x)
    <class 'set’>

    ## add로 요소값을 하나 추가합니다.
    >>> x.add(4)
    >>> x
    {1, 2, 3, 4}

    ## 중복 값을 입력해 보았습니다.
    ## 집합이라 중복이 허용되지 않으므로 오류는 발생하지 않지만 추가되지는 않습니다.
    >>> x.add(3)
    >>> x
    {1, 2, 3, 4}

    ## 0을 추가해 봅니다.  순서대로 추가 되는 것 처럼 보이지만 순서는 없습니다.
    >>> x.add(0)
    >>> x
    {0, 1, 2, 3, 4}
    >>>

     

    update 딕셔너리에서는 여러 값 수정 및 없으면 추가가 되었으나, 집합은 수정의 개념이 없으므로 추가됩니다.

    >>>>>> x = { 500, 20, 66 }
    >>> x.update([20, 100, 200])
    >>> x
    {66, 100, 200, 500, 20}
    >>> 

     

    ● 집합 요소값 제거하기

     

    집합의 요소값을 제거하는 방법도 2가지가 있습니다.

    Remove() dicard() 입니다. 둘 다 결과는 같지만 없는 값을 삭제 시 오류발생 여부가 다릅니다.

     

    오류 발생 여부는 프로그램을 멈출 수도 있으므로 중요한 포인트입니다. 이전 포스팅에서도 언급하였었습니다.

    참고로 집합은 update 의 개념이 없으므로 삭제 후 추가하는 방법으로 update 합니다.

    >>> x = {66, 100, 200, 500, 20}
    >>> x
    {66, 100, 200, 500, 20}

    ## 20을 제거합니다.
    >>> x.remove(20)
    >>> x
    {66, 100, 200, 500}

    ## 100을 제거합니다.
    >>> x.discard(100)
    >>> x
    {66, 200, 500}

    ## 없는값인 0을 제거할 경우  remove  는 오류를 발생시킵니다.
    >>> x.remove(0)
    Traceback (most recent call last):
      File "<pyshell#27>", line 1, in <module>
        x.remove(0)
    KeyError: 0

    ## 없는값인 0을 제거할 경우  discard 는 오류를 발생시키지 않습니다.
    >>> x.discard(0)
    >>> x
    {66, 200, 500}
    >>>

     

    ● 집합 임의의 값 삭제하기

     

    pop는 리스트 자료형에서도 봤던 메소드로 리스트에서는 괄호안에 인덱스의 값을 삭제하고 그 값을 반환했습니다. 값이 없으면 마지막 값을 삭제하고 그 값을 반환하였었습니다.

     

    집합에서는 순서도 없고 인덱스로 접근도 안되므로 그냥 알아서 임의의 값을 삭제하고 그 값을 반환합니다.

    집합의 모든 값이 없을 경우 pop를 사용하면 오류를 발생 시킵니다.

    >>> x
    {2, 3}
    >>> x.pop()
    2
    >>> x
    {3}
    >>> x.pop()
    3
    >>> x
    set()
    >>> x.pop()
    Traceback (most recent call last):
      File "<pyshell#51>", line 1, in <module>
        x.pop()
    KeyError: 'pop from an empty set'
    >>> 

     

    집합의 모든 요소 값 삭제하기

     

    clear()는 모든 집합 요소 값을 삭제하고 빈 집합으로 만들어 줍니다.

    >>> x = {2, 4, 5}
    >>> x.clear()
    >>> x
    set()
    ## 빈 집합을 다시한번 clear 해 보았습니다. 오류는 발생하지 않습니다.
    >>> x.clear()
    >>> x
    set()
    >>> 

     

    ● 집합의 요소 개수 구하기

     

    예상하셨듯 len 을 사용합니다.

    >>> x = { 2, 3, 4}
    >>> len(x)
    3
    >>> 

     

    집합 요소 값 안에 있는지 확인하기

     

    리스트 자료형에서도 in 을 사용하여 참 / 거짓 값을 반환하였습니다.

    사용 방법은 동일합니다.

    >>> x = { 2, 3, 4}
    >>> 3 in x
    True
    >>> 5 in x
    False
    >>> 

     

    이상으로 집합의 추가 및 삭제에 대해 알아보았습니다.

    반응형