본문 바로가기
Python 코딩도장

파이썬 코딩도장 Unit 26 정리(4) - 세트의 할당과 복사

by chanfficial 2022. 2. 10.

4. 세트의 할당과 복사

  • 세트도 리스트, 딕셔너리 처럼 할당과 복사의 차이점이 있다.
    >>> a = {1, 2, 3, 4}
    >>> b = a​
  • b=a 처럼 세트를 다른 변수에 할당하면 세트는 두 개가 될 것 같지만 실제로는 하나다.
  • a와 b를 is 연산자로 비교하면 True가 나오는데, 변수 이름만 다를 뿐 세트 a와 b는 같은 객체임을 알 수 있다.
    >>> a is b
    True​
  • a와 b는 같으므로 b에 요소를 추가하면 세트 a와 b에 모두 반영된다.
    >>> b.add(5)
    >>> a
    {1, 2, 3, 4, 5}
    >>> b
    {1, 2, 3, 4, 5}​
  • 세트 a와 b를 완전히 두 개로 만들려면 copy 메서드로 모든 요소를 복사해야 한다.
    >>> a = {1, 2, 3, 4}
    >>> b = a.copy()​
  • 이제 a와 b를 is 연산자로 비교해보면 False가 나오고 두 세트는 다른 객체임을 알 수 있다.
  • 그러나 복사한 요소는 같으므로 == 로 비교하면 True가 나온다.
    >>> a is b
    False
    >>> a == b
    True​
  • 세트 a와 b는 별개이므로 한쪽의 값을 변경해도 다른 세트에 영향을 미치지 않는다.
    >>> a = {1, 2, 3, 4}
    >>> b = a.copy()
    >>> b.add(5)
    >>> a
    {1, 2, 3, 4}
    >>> b
    {1, 2, 3, 4, 5}​