💡 일반적으로 Python 에서는 Array 보다 일반 List 가 더 많이 사용 되고 대부분의 경우 큰 차이가 없음으로 그냥 List 를 사용하면 됩니다.
사실 Python 에서는 List 가 Array 라고 생각하고 써도 무방합니다. 다만 엄밀히 말하자면 Array 와 List 는 다릅니다. 기능적으로는 거의 동일하지만 메모리 효율면에서는 Array 가 유리합니다. 다만 사용하기에는 List 가 훨씬 편합니다. (Python 에서 Array 를 사용하려면 import Array 모듈을 import 해서 사용해야 합니다.)p.s Python 에서 Array 와 List 의 차이에 대한 더 자세한 정보는 이곳(영문🇺🇸)을 참조하세요.
배열은 처음 생성될 때 어느정도 메모리를 미리 할당 받으며 이를 pre-allocation이라 한다.
하지만 요소들이 처음 할당한 메모리 이상으로 많아진다면 resizing이 필요하다.
그리고 추가적으로 할당된 메모리 또한 순차적이어야 하며 이는 상대적으로 오래걸리는 명령이다.
- 100개의 메모리 공간 다 차서 100개를 추가해야 되는 경우
- 200개 크기의 메모리를 생성 후 > 기존 100개를 복사하고 > 그 다음 101번 부터 데이터가 순차적으로 추가됩니다.
그렇기 때문에 배열은 사이즈 예측이 잘 안 되는 데이터를 다루기에는 적절하지 않다.
사이즈가 급격하게 자주 늘어날 확률이 있는 데이터는 배열 말고 더 적합한 자료구조를 선택해야 한다
Tuple Is Not For Every Language!
Python 은 tuple이 있고 JavaScript는 없습니다. 그렇다고Python > JavaScript
는 아닙니다! 다만 JavaScript에서는 tuple을 굳이 따로 안만든것 뿐입니다. Tuple은 list와 너무 비슷하기 때문에 굳이 제공하지 않는 언어도 많습니다. JavaScript에서는 그냥 array를 사용해도 상관없습니다.
// Tuple을 사용하는 경우 [(1,2), (2,4)] // Array(List) 안의 Tuple // Tuple을 안 쓰는 경우에는 class를 생성해야함 class cord: def __init__(self, x, y): self.x = x self.y = y