꺼내먹는지식 준
Python List 본문
Python List 에서 쉽게 할 수 있는 실수들
A = [1,2,3,4,5]
B = [1,2,3,4,5]
A,B 는 같은 값의 리스트를 가져도, 둘은 같은 주소를 공유하지 않는다.
A = B[:]
A는 B 값의 리스트를 복사해도, 둘은 같은 주소를 공유하지 않는다.
A = B
이 경우 둘은 같은 주소를 공유한다.
A == B
둘의 값만 같으면 된다.
A is B
둘의 메모리 주소가 같아야 한다.
당연히 A is not B 는 값이 같아도, 메모리 주소만 다르면 True를 리턴한다.
굉장히 충격적이게도,
-5 ~ 256 의 integer 값들은
a = -5
b = -5
a is b 가 True를 리턴한다. 이는 자주 쓰이는 숫자들에 대해서는 선언하는 모든 변수들이 같이 가리키도록 하기 때문이다.
그렇다고 해서
a = 3 으로 수정해도 b값이 수정되지는 않는다.
본 내용을 숙지하지 않고 코딩을 할 때 실수를 하면 debugging하기가 굉장히 어려울 수 있다.
값을 비교할 때는 == , is 는 메모리 주소 비교할 때만 사용하는게 좋을 것 같다.
'Python > 간단한 이해 글' 카테고리의 다른 글
Python Zip (0) | 2022.02.04 |
---|---|
Pandas (0) | 2022.01.18 |
numpy (0) | 2022.01.18 |
String 및 변수, 함수 관련 (0) | 2022.01.17 |
컴퓨터 기본 내용 정리, 파이썬 기본 내용 정리 (0) | 2022.01.17 |