인프런 커뮤니티 질문&답변

김민수님의 프로필 이미지
김민수

작성한 질문수

우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)

시퀀스(2-1)

list 질문입니다.

작성

·

121

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]
김민수님의 프로필 이미지
김민수

작성한 질문수

질문하기