• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

list 질문입니다.

21.02.09 14:26 작성 조회수 86

1

tuple은 불변형이기 때문에 변화가 있을 때마다 아예 새로운 id값을 생성해서 변수를 할당하고

list는 가변형이기 때문에 그냥 그 id값에 값을 추가하는 식이 된다고 이해했습니다.

그런데 m = m * 2와 m *= 2의 경우 전자는 id값에 변화가 생기고, 후자는 id값에 변화가 생기지 않는데 이는 두 연산자가 하는 일이 본질적으로 동일하지만 내부적으로 처리하는 과정이 다르기 때문인가요?

답변 1

답변을 작성해보세요.

4

네 맞습니다. 정확하게 이해하셨어요. 

아래 예제 한 번 보세요.(안보이면 드래그)

>>> a = b = []
>>> a += [5]
>>> a
[5]
>>> b
[5]
>>> a = a + [5]
>>> a
[5, 5]
>>> b
[5]