inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

예제로 공부하는 Python 100 문제풀이 Part.1

is, ==, 연산자

문자열 주소가 같은 이유 c is d

436

장한혁

작성한 질문수 2

0

Java에서는, 문자열 객체가 생성될 때마다 새로운 주소를 할당하는 방식을 사용합니다. 그러나 Python의 경우 문자열 객체 생성 시 매번 새로운 객체를 만드는 대신 기존에 선언되어 있던 immutable 객체를 사용합니다. 이는 CPython의 최적화 기법인 string interning에 의한 동작입니다. 따라서 둘 이상의 변수가 메모리의 동일한 문자열 객체를 가리킬 수 있고, 메모리를 절약하게 됩니다.

 

a = 'PlanB'

b = 'PlanB'

print(id(a), id(b))

# 4346040648 4346040648

print(id(a) == id(b))

# True

print(a is b)

# True

https://planbs.tistory.com/entry/Python-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%98-%EB%A9%94%EB%AA%A8%EB%A6%AC-%ED%95%A0%EB%8B%B9-%EB%B0%A9%EC%8B%9D

 

간단하게 말하면, '동일한' 문자열을 가리킬 경우에는 미리 선언했던 변수(c)를 새로 선언하는 변수(d)에 덮어씌우는 것입니다.

따라서 c is d 가 True가 되는 것입니다.

 

python

답변 0

자동화시트에 이미지를 제가 원하는 사진을 다운 받아서 시트에 입력할수 있을까요?

0

6

1

이론 파트 재탕

0

12

1

모의고사 5회

0

12

0

12분 10초 func(values, 0, 1)을 넣을 때

0

14

1

mcp 관련 질문

0

22

2

Alpha vantage 유료화?

0

27

2

오류

0

14

1

29강 작업2형의 이상치 처리

0

23

2

재탕문제

0

30

1

재탕문제

0

22

0

반복문, for문, 0~9 반복

0

89

0

visual studiocode

0

314

0

숫자, 문자열과는 다르게 리스트는 다른 메모리주소값을 가지는 이유

0

417

1

문자형의 자료형을 정수형으로 바꾸는 이유가 무엇인가요?

0

912

1

is와 ==연산자 부분 수업하신 내용과 다른 결과 출력

0

447

1

문자열이 한글로 이루어졌을 경우

0

366

1

예제로 공부하는 Python 100 문제풀이 Part.1 /리스트, 반복문, 요소 값, 거꾸로

0

307

0

변수 메모리할당

0

249

0

질문 응답이 왜이렇게 느립니까?

0

531

2

'변수선언, 값, 할당' 강의 2분 24초

0

315

1

노트 패드 npp exec 설치 오류

0

520

1

노트 패드 입력 시 콘솔 변동사항

1

342

1

노드패드++ pluging admin 들어가서 nppexec 설치가 안됩니다.

0

366

0

NOTEPAD++ 로 콘솔 실행 관련 질문이 있습니다..

5

745

3