TIL #33 자료구조 - List, Tuple

강경훈·2020년 9월 1일
0
post-thumbnail

자료구조

  • 자료 구조란 데이터의 편리한 접근과 조작을 가능하게 하는 데이터를 저장하거나 조직하는 방법
  • 문맥과 데이터의 종류에 따라 적절한 자료 구조를 사용하는 것은 전체 개발 시스템에 큰 영향을 끼침
  • 자료구조의 다양한 종류와 각각의 장점과 한계를 잘 이해하고 상황에 맞게 올바른 자료 구조를 선택하고 사용하는 것이 중요

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 할 때
profile
방랑하는 개발자

0개의 댓글