-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
리스트를 가지고 연산했을 때 id 값에 대해 궁금한 것이 있습니다.
20.04.21 13:51 작성 조회수 87
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
좋은사람
지식공유자2020.04.22
안녕하세요.
a = a + 2 , a *= 2
전자의 경우에는 a라는 변수를 재선언해서 할당하는 것이기 때문에 id값이 변경되서 출력됩니다.
후자는 현재 변수에 할당이므로 동일한 id값이 출력됩니다.
감사합니다.
답변 1