[Python] (메소드 정리 3편) 집합(set) 자료 메소드

전도운·2024년 7월 16일
0
post-custom-banner

중복을 허용하지 않는 집합(set)의 메소드는 리스트와 달리 많지 않다. 비슷한 기능을 하지만 다른 메소드 표현들이 있어 정리해본다.

  • 항목 더하기(add, update)

    • .add(x): 이미 만들어진 set자료형에 1개의 값을 추가한다. 리스트 자료형의 append와 달리 구성이 변하지 않는(hashable) 하나의 값만 추가 가능하다. 따라서 구성이 변할 수 있는(unhashable) 리스트, 딕셔너리 등은 추가할 수 없다.

      set1 = set([1, 2, 3])
      set1.add(4)
        set1 → {1, 2, 3, 4}
      set1.add([1, 2])
      ---------------------------------------------------------------------------
      TypeError
      Traceback (most recent call last)
      Cell In[8], line 1
      ----> 1 set1.add([1, 2])
      TypeError: unhashable type: 'list
    • .update(x): 여러 개의 값을 한꺼번에 추가할 때 사용한다. 리스트와 딕셔너리 자료형 중복 제거하고 모두 추가할 수 있다. 딕셔너리 자료형을 추가하는 경우 key만 추가되며, value까지 추가하기를 원하는 경우 .values()메소드를 별도로 이용해야 한다.

      set1.update([5, 6, 'a'])
      set1 → {1, 2, 3, 4, 5, 6, 'a'}
      set1.update({'a':1, 'b':2, 'c':10}.values())
      set1 → {1, 10, 2, 3, 4, 5, 6, 'a', 'b', 'c'}
  • 항목 제거하기

    • .remove(x): 제거하고 싶은 값을 지정해서 제거할 수 있다. 리스트 자료형에서 사용하는 remove 메소드와 기능이 동일하다. add 메소드와 동일하게 hashable 타입인 숫자, 문자 등만 인수로 받을 수 있다.
      set1.remove(10)
      set1 → {1, 2, 3, 4, 5, 6, 'a', 'b', 'c'}
      set1.remove([2, 3, 4])
      TypeError
      Traceback (most recent call last)
      Cell In[42], line 1
      ----> 1 set1.remove([2, 3, 4])
      TypeError: unhashable type: 'list'
profile
의미 있는 한걸음을 추구합니다.
post-custom-banner

0개의 댓글