Array는 Non-Primitive Data Structure(비단순 자료구조)에서 가장 기초적이고 단순하면서도 가장 자주 사용되는 Data Structure(자료구조)이다.
Python에서도 Array는 지원한다. 하지만, 사용편이상 List를 더 많이 사용한다. 만약 Array를 사용하고자 한다면, Array모듈을 import(import array
)하여 사용할 수 있다.
Array는 element의 순서로 저장되는 것이 아니라, 메모리 상에서 순차적으로 저장된다.
순서가 있기때문에 각 메모리주소마다 번호가 있고 이 번호를 Index(인덱스)라 한다.
순서가 있음으로 index가 있고, index가 있음으로 indext를 사용해서 특정 element를 Array(List)로 부터 읽어들일 수 있다
Array의 element가 Array가 될 수 있다. 즉, array안에 array가 있는 것으로 Multi Dimentional Array(다중차원배열)이라 한다.
특히 Matrix 같은 구조에서 많이 사용한다.
항상 메모리가 순차적으로 이어져있어야 하기 때문에, 요소를 삭제하면 삭제된 요소로 부터 뒤에 있는 모든 요소들을 앞으로 한칸씩 이동시켜줘야한다.
따라서 element 삭제 시 다른자료구조에 비해 속도가 느리다.
element 삭제하는 상황과 마찬가지로 element를 삽입할 때에도 순서를 재정의해야함으로 다른 자료구조에 비해 느리다.
Array는 메모리 저장이 순차적이어야 하다보니 배열이 처음 생성될때 어느정도 메모리를 미리 할당해놓는다. 이를 Pre-allocation 이라고 한다.
하지만 만일 처음에 미리 할당한 메모리 저장 공간이 거의 찰 경우, 앞으로 더 저장될 element에 대비하여 메모리를 더 할당하는데 이것을 Array Resizing 이라 한다.
일반적으로 Array의 메모리 Pre-allocation과 Resizing은 자동으로 실행해준다.
list()
메소드 지원# 1차원 배열: 리스트로 구현시
data_list = [1, 2, 3, 4, 5]
data_list
# Output
[1, 2, 3, 4, 5]
# 2차원 배열: 리스트로 구현시
data_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
data_list
# Output
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]