TIL #33 자료구조 - List, Tuple
자료구조
- 자료 구조란 데이터의 편리한 접근과 조작을 가능하게 하는 데이터를 저장하거나 조직하는 방법
- 문맥과 데이터의 종류에 따라 적절한 자료 구조를 사용하는 것은 전체 개발 시스템에 큰 영향을 끼침
- 자료구조의 다양한 종류와 각각의 장점과 한계를 잘 이해하고 상황에 맞게 올바른 자료 구조를 선택하고 사용하는 것이 중요
List (array)
1. 특징
- 순차적으로 data 저장
- 실제 메모리에서도 순차적으로 저장
- Mutable
- Mutil-dimension list 가능
- index을 사용하여 data을 읽을 수 있음
- index을 이용하여 slicing 가능
2. 단점
- data를 삭제하거나 삽입 할 때 실제 메모리에서 data을 옮기는 작업 등 작업이 필요하여 다른 자료구조들 보다 해당 작업이 느리다.
- list는 미리 일정 크기의 메모리를 할당 받는데, 이 크기를 넣게 되면 메모리를 re-sizing하고 이 작업은 상대적으로 느리다.
3. 사용하기 좋은 곳
- 순차열적인 data
- 다차원 data
- index을 통해 빠르게 값을 읽어야 되는 data
- data 크기의 변화가 급격하지 않는 data
- data의 삭제나 추가가 많이 없는 data
Tuple
1.특징
- list와 마찬가지로 순차적으로 data 저장
- Immutable
- 2~3개의 적은 수의 소규모 data를 저장
- package/unpakage
2. 단점
- data의 의미가 불명확함
- data의 의미를 문맥을 보고 파악해야 됨
3. 사용하기 좋은 곳
- list를 사용하기에는 간단한 data을 표현 할 때 (예: 좌표)
=> tuple이 list보다 메모리를 적게 먹음
- 함수에서 1개 이상의 값을 return 할 때