작성
·
148
0
튜플은 불변형이기에
리스트와 달리 재할당할 때마다 id 값이 바뀐다는 것은 이해했습니다.
그런데
a = [1,2,3]
print(id(a))
a *= 2
print(a, id(a))
a = a * 2
print(a, id(a))
했을 때 첫 번째 a의 id와 두 번째 a의 id 값은 같은데
세 번째 a의 id 값만 다릅니다.
[1,2,3]인 a의 id와 a *= 2 한 a의 id는 동일하고
a = a*2 했을 때의 id만 다르다는 의미인데
왜 그런가요? a = a* 2나 a *= 2나 둘 다 재할당하는 것인데
id값이 다른 이유를 모르겠네요. 감사합니다.
답변 1
1
안녕하세요.
a = a + 2 , a *= 2
전자의 경우에는 a라는 변수를 재선언해서 할당하는 것이기 때문에 id값이 변경되서 출력됩니다.
후자는 현재 변수에 할당이므로 동일한 id값이 출력됩니다.
감사합니다.