# Python
- 인터프리터 방식 (별도의 컴파일x)
- 객체 지향 언어 (ADT)
- 동적 타이핑
- 시퀀스, 군집 자료형 기능 우수 (리스트, 집합, 딕셔너리, 튜플 등)
- 값(리터럴)에 대한 참조
- 배열 대신 리스트 사용 (동적 할당)
# Python Variable 파이썬 변수
- 값(리터럴)에 대한 참조
*리터럴: 변수가 참조하는 값
- a, b = b, a // swap 작업. 변수의 값을 바꾸는 것이 아닌, 변수가 참조하는 대상을 변경하는 것.
# Immutable data 불변 자료형
- int, float, string...
- 값(리터럴) 변경이 불가능
- 값 변경시 새로운 리터럴을 참조함
- 매개변수 전달 시 값 변경이 불가능
# Mutable Data Type 가변 자료형
- 리스트, 딕셔너리의 원소 값 변경/추가 가능
- 리스트는 각 원소 값에 대한 참조들의 모음
- 매개변수 전달 시 인수 값이 변경될 수 있음
# Alias: 두 변수가 하나의 객체를 동시에 참조해 공유
# Shallow Copy 얕은 복사
: 변수는 복사하여 새로 생성하지만, 참조하는 리터럴은 공유하는 복사 방법
- B = copy.copy(A)
- 얕은 복사를 통해 리스트 B의 원소들은 새롭게 생선되지만,
원소들이 참조하는 객체는 원본과 동일하며 새로 생성되지 않는다.
# Deep Copy 깊은 복사
: 참조 변수만 복제하는 것이 아니라, 리터럴까지 전부 복제하는 복사 방법
- B = copy.deepcopy(A)
- 서로 독립적, 영향주지 X
* 얕은 복사, 깊은 복사 모두 복사 시 import copy 작성해야 함.
'CS > 자료구조' 카테고리의 다른 글
Data Structures 1. Introduction (0) | 2022.12.26 |
---|