본문 바로가기
Python/파이썬 훈련소(기초)

[파이썬 훈련소] 자료형 (리스트)

by 북마크한 취미생활 2022. 7. 20.

| 자료형

4. 리스트형

리스트란? 목록이라는 뜻으로 데이터를 일렬로 늘어 놓은 자료형입니다. 마치 일련 번호가 붙어 있는 선반에 상자를 순서대로 정리한 것이라고 생각하면 됩니다. 리스트형이 여러 데이터를 모아 놓은 이유는 데이터가 모여 있다면, 모여있는 데이터를 쉽고 빠르게 처리할 수 있기 때문입니다.

리스트는 데이터를 콤마(,)로 구분하고, 전체를 대괄호([])로 묶어서 선언을 합니다. 리스트를 사용하면 여러 가지 데이터를 한 번에 관리하고 필요한 것만 꺼내서 쓸 수 있기 때문에 매우 유용합니다.

또한, 리스트는 숫자, 문자, 심지어는 리스트형도 리스트에 들어갈 수 있는 자료형입니다.
리스트의 간단한 사용방법은 다음과 같습니다

>>> a = [1,2,3,4]
>>> a
[1,2,3,4]

리스트는 다음과 같이 여러 종류의 자료형을 모을 수 있습니다.

>>> a = [1, 2, 3, 'a' , 'b' , 'c' ]
>>> print(a)
[1, 2, 3, 'a' , 'b' , 'c' ]

리스트에는 리스트형도 포함할 수 있습니다.

>>> a = [1, 2, 3, ['a' , 'b' , 'c' ]]
>>> print(a)
[1, 2, 3, [ 'a' , 'b' , 'c' ] ]

리스트의 값(요소)을 참조하려면 리스트명 [번호]형태로 접근하면 됩니다.

>>> a = [10, 20, 30, 40]
>>> print(a[0])
10
>>> a[ 1]
20

① 인덱스로 리스트 요소 접근

위의 예제를 보면 리스트에 접근할 때 리스트명 뒤에 숫자를 넣어 리스트 요소에 접근을 하였습니다. 숫자를 자세히 보면, 일반적으로 첫번째 요소에 접근을 할 때 1 이라고 기록을 할 것 같습니다. 하지만, 1 이 아닌 0 을 사용하여 접근함을 볼 수 있습니다. 코딩에서 많이 사용하는 방식이지만, 프로그래밍 언어에 익숙하지 않으면 이상하다고 생각할 수 있습니다.

이 부분을 이해하기 위해서는 오프셋(offset)이라는 개념을 알아야 합니다. 오프셋은 기준이 되는 곳부터 얼마나 떨어져 있는가?를 의미 합니다.

리스트형을 설명드릴 때 창고 선반에 연속적인 숫자가 붙어 있고, 여러개의 상자가 순서대로 놓여 있는 것이 리스트라고 설명을 드렸습니다.

다음 그림을 보면, 가장 왼쪽에 있는 선반에 화살표가 붙어 있습니다. 이 화살표는 리스트의 첫번째 구역을 가리키고 있는 것이라고 생각하면 됩니다. 다르게 표현을 하면 리스트형에서 각각의 요소를 접근하기 위한 기준점입니다. (그림을 보면 변수는 상자에 이름표를 붙였는데, 리스트는 화살표에 이름표를 붙였습니다.)

이후부터는 설명을 위해 아래와 같이 간단히 보여드리도록 하겠습니다.

조금 더 자세히 설명을 드리면, a[0]이라는 것은 화살표(리스트변수 a)로부터 0 번째 떨어진 (구역)요소라는 의미가 됩니다. 즉, a[0]은 화살표가 있는 구역이라고 이해하시면 됩니다. a[1]이라는 것은 화살표가 있는 구역으로부터 오른쪽으로 1 번째 떨어진 구역이라는 의미입니다.

>>> a = [10, 20, 30, 40]
>>> a[ 3]
40

책의 마지막 부분을 보면, 책 내용에서 중요한 단어나 항목, 인명 따위를 쉽게 찾아볼 수 있도록 일정한 순서에 따라 별도로 배열한 인덱스(index)볼 수 있습니다. 이 인덱스를 활용하면 책에서 찾고자 하는 중요한 부분을 바로 찾을 수 있습니다. 파이썬의 리스트도 인덱스를 두어 인덱스를 통해 리스트의 안에 있는 요소에 바로 접근할 수 있습니다. 리스트의 인덱스는
각 요소의 위치를 나타낼 때 사용합니다.
리스트에 인덱스를 지정하지 않으면 리스트 전체를 뜻합니다. 다르게 표현하면 화살표가 가르치는 선반에 있는 상자 값을 다 보여줘라는 의미가 됩니다.

>>> a = [10, 20, 30, 40]
>>> print(a)
[10, 20, 30, 40]

인덱스는 맨 앞쪽부터 시작하는 양수 인덱스 외에도, 맨 뒤에서부터 시작하는 음수 인덱스도도 있습니다. 리스트의 마지막 데이터는 무조건 -1 부터 시작을 합니다.
아래 그림을 보면, 오른쪽 마지막 선반 옆에 투명한 화살표가 있는 것이 볼 수 있습니다. 이것은 선반의 마지막을 표기한 것입니다. 리스트에서 실제로 존재하는 것이 아니라 음수(-) 인덱스를 설명하기 위해서 만들어 놓은 것이라 흐리게 표기를 하였습니다

음수 인덱스를 표기를 하면 리스트에서 뒤에서부터 요소에 접근합니다. 즉, -1 은 뒤에서 첫번째, -3 은 뒤에서 3 번째에 해당합니다.

>>> a = [10, 20, 30, 40]
>>> a[ -1]
40

음수 인덱스, 양수 인덱스를 그림으로 표기를 하면 아래와 같습니다.

어떤 값이 변경이 되면 그 값에 =연산자를 사용하여 새로운 값을 대입한 것처럼, 리스트 요소에도 값을 다시 할당을 할 수 있습니다.

리스트에 새로운 값을 할당하는 방법은 리스트이름[인덱스]로 요소를 지정한 다음 값을 할당하면 됩니다.

리스트 범위지정

지금까지 리스트를 출력할 때 전체를 출력하거나, 인덱스를 통해 특정 리스트 요소만을 출력하였습니다. 리스트는 이러한 방법 이외에도 범위를 지정하여 리스트의 일부의 요소만 접근할 수 있습니다.

그림으로 설명을 드리면, 리스트의 범위는 시작 인덱스와 끝 인덱스를 지정하여 그 안의 값을 얻는다고 생각하면 됩니다

>>> a = [1,2,3,4,5]
>>> a[0:3]
[1,2,3]
반응형

댓글