안녕하세요!

FE 개발자 유진주입니다.

CS/자료구조

Data Structures 2. Python Data Type

ypearl 2022. 12. 29. 18:42

# 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