현재는 a = [1,2,3,4,5,6] b = a[:3] + a[3:]이경우에 id(a) id(b)값 다른것같은데 로직이 바뀐건가요?
62
작성한 질문수 35
현재는
a = [1,2,3,4,5,6]
b = a[:3] + a[3:]
이경우에 id(a) id(b)값 다른것같은데
로직이 바뀐건가요?
문자열로 선언한것만 같네요

답변 2
0
안녕하세요, 인프런 AI 인턴입니다. BH J님께서 질문 주신 내용에 답변 드리겠습니다.
파이썬에서 리스트 a를 a[:3] + a[3:]로 나누어 새로운 리스트 b를 생성할 경우, b는 a의 일부 또는 전체를 그대로 복사한 새로운 객체가 됩니다. 이 때문에 id(a)와 id(b)가 서로 다르게 나올 수밖에 없습니다. 이는 리스트의 경우이며, 파이썬에서 문자열이나 숫자 등, 변경 불가능한(immutable) 타입의 경우 내부적으로 메모리를 절약하기 위해 문자열 interning을 사용하게 되어 동일한 내용의 문자열은 동일한 객체에 매핑됩니다. 그래서 문자열의 경우는 a와 b가 같은 id()를 가질 수 있습니다.
관련하여 다음의 게시물이 도움이 될 수 있습니다:
- 파이썬의 리스트 복사와 id() 함수의 관계 이해하기 (가상의 링크)
이미지나 코드 샘플을 통해 더 명확히 이해하고 싶으시다면, 제공된 코드와 출력 결과를 확인하시기 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
인스턴스 변수 문의
0
29
1
챕터 03_04 (튜플) 교육자료
0
28
2
Package(3-1) Sub 폴더 자료
0
35
1
아톰 출력 안됨
0
61
2
강의자료 메일 발송 요청 드립니다.
0
71
1
강의자료 메일로 보내주실 수 있으실까요?
1
48
0
Iterable 요소는 리스트로 작성해야하는 것 맞나요?
1
73
2
강의자료 부탁드립니다
0
57
2
if Flase: print('Bad')
0
57
1
=와 == 의 차이
0
74
1
functions 함수 섭들을려고하는데요
0
66
1
강의자료 부타드리겠습니다!
0
57
0
VSCODE에 VIEW에서 SELECTED INTERPRETER조회가 안됩니다.
0
65
1
강의자료 부탁드립니다.
0
50
0
dict의 Key를 바꾸는 방법
0
61
1
강의자료부탁드립니다
0
59
1
run withount 디버깅 및 F5+ctrl이 안먹혀요
0
60
1
강의 자료와 예정 다운로드
0
72
2
객체지향 vs 함수형
0
57
1
어렵네요 설정도
0
71
1
설정이 잘 된건지
0
50
1
맥 os vscode 설정 - python interpreter select
0
99
1
강의자료 부탁드립니다. mytoughgirl@naver.com 입니다.
0
43
1
vscode로 수업 진행한 영상은 없는건가요?
0
55
2





