C 에서의 배열은 미리 크기만큼 지정하므로 크기가 고정된다. 이런 배열을 정적(static) 배열 방식이라 한다.
Python 에서는 어떨까?
파이썬과 자바, c++ 같은 Dynamic language 들은 배열 data type 을 <동적> 인것만 제공한다.
- 처음 생성시 초깃값이 잡힌다
- 엘리멘트가 추가
- 자리가 부족하다면 ,growth factor 만큼 크기가 늘어남
파이썬의 growth factor은 1.1배 정도이고, 어떤 언어들은 1.5~2배씩 증가한다.(doubling)
Java 에서는 배열에 엘리멘트 추가시, 새로운 크기의 배열을 만들고 내용을 복사한다.
Python 도 동적배열이므로, 엘리먼트가 추가되는데 자리가 부족하면 알아서 새로운 크기의 배열을 만들고 복사하다.