티스토리 뷰

study/Python

List 와 Array 의 차이

xoxowo 2022. 6. 18. 00:17

파이썬의 list는 C언어 배열을 이용해서 동적 배열을 구현한 것이며 배열(array)과 비슷하지만 다르다.

파이썬을 비롯한 동적 배열을 자료형으로 제공하는 대부분의 언어들은 실제 사용하는 배열의 크기와 상관없이 저장해 놓은 공간에만 접근할 수 있게 처리를 해준다.

 

 

배열 (Array) 

같은 자료형의 데이터들을 연속적으로 메모리에 저장하는 자료 구조. (정적 배열)

프로그래머가 직접 크기 조절을 해야 함. 한 번 정한 배열의 크기는 수정할 수 없다.

인덱스를 활용 가능

배열은 메모리 주소가 순차적 

데이터를 저장하는 공간은 연속된 메모리 저장공간을 사용하며 검색이 빠르다.

배열의 요소를 제거하더라도 메모리 저장공간은 남아있기 때문에 메모리가 낭비됨.

// java 배열 생성 및 초기화

int[] num  = new int[10];
 
 
 

 

리스트 (List) (dynamic array)

서로 다른 자료형의 데이터들을 비연속적으로 저장할 수 있는 자료 구조. (동적 배열)

인덱스를 활용 가능하다.

배열의 크기가 정해져 있지 않아 데이터의 추가, 삭제가 유연하다. 내부 배열의 크기를 알 수 없음. (자동조절)

배열과 다르게 연속적인 각 메모리 칸들은 리스트 요소의 값을 저장하고 있는 것이 아니라, 각 리스트 요소의 값을 가리키고 있으며, 값 자체를 메모리에 저장하는 것이 아니기 때문에, 자료들의 크기가 상관이 없다.

리스트는 삭제하면 메모리 공간을 삭제하여 다음 인덱스와 연결됨.

 
# 파이썬 리스트 생성

num = [ 1, 2, 3, 4 ]

 

 

'study > Python' 카테고리의 다른 글

기본 자료형  (0) 2022.06.24
Function parameter  (0) 2022.06.23
Tuple  (0) 2022.06.16
List, Dictionary 관련 기본 함수 및 리스트 내포  (0) 2022.06.16
Dictionary - 혼자 공부하는 파이썬 예제 풀이 (개인 공부)  (0) 2022.06.14
댓글