더북(TheBook)

1.4 배열

 

 

이번 절에서는 데이터 구조 개념을 소개하고, 구조화된 데이터의 첫 번째 예로 배열(array)을 살펴본다. 배열은 아주 많은 양의 데이터를 쉽게 저장하고 조작할 수 있게 해주므로, 여러 데이터 처리 작업에서 핵심적인 역할을 담당한다. 배열은 수학과 과학 프로그래밍에서 널리 사용되는 벡터나 행렬에도 쉽게 대응된다. 먼저 파이썬에서 배열을 처리하는 데 필요한 기본적인 성질을 알아보고 배열의 유용성을 보여주는 예제를 두루 살펴보겠다.

데이터 구조(data structure)는 컴퓨터 프로그램으로 처리할 데이터를 조직화하는 방법이다. 데이터 구조는 컴퓨터 프로그래밍에서 핵심적인 역할을 담당하며, 실제로 다양한 고전적 데이터 구조체들을 설명하기 위해 이 책의 4장 전체를 할애할 정도로 중요한 개념이다.

1차원 배열은 일련의 객체(에 대한 참조)를 저장한다. 배열 안에 있는 각 객체는 요소(element)라고 하며, 요소를 참조하기 위해서는 인덱스(index)를 사용한다. 배열 안에 n개의 요소가 있을 때 각 요소의 0부터 n-1까지의 인덱스를 가진다. 그러고 나서 이 범위 안에서 i 인덱스를 가진 요소는 i번째 요소라고 부름으로써 고유하게 식별할 수 있다.

2차원 배열은 1차원 배열(의 참조)에 대한 배열이다. 1차원 배열의 요소는 정수 하나로 인덱싱할 수 있지만, 2차원 배열의 요소는 정수 두 개를 이용해 행과 열을 지정해 인덱싱한다.

처리할 데이터가 아주 많을 때는 먼저 하나 이상의 배열에 데이터를 모두 집어넣는다. 그러고 나서 인덱스를 이용해 각 요소를 참조해 데이터를 처리한다. 시험 성적, 주가, DNA에 들어 있는 뉴클레오티드, 책에 들어 있는 글자들이 배열에 들어갈 수 있다. 이때 모두 동일한 데이터 타입의 객체가 아주 많이 배열에 들어가곤 한다. 이런 예제는 1.5절에서 데이터 입력에 대해 설명하고 1.6절에서 사례들을 살펴볼 때 설명한다. 이번 절에서는 먼저 실험을 통해 계산된 값을 담고 있는 객체를 배열에 채우고 처리하는 예제를 살펴보고 나서 배열의 기본적인 속성을 설명한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.