본문 바로가기

프로그래밍/Python

파이썬 강좌 06 :: 리스트(list)


06. 리스트list



파이썬은 기본 자료형으로서 리스트(list)를 제공합니다. 리스트는 여러 원소들을 순서있게 담을 수 있는 자료구조이며 대괄호 [ ]로 여러 데이터를 감싸서 표현합니다. 다음은 리스트의 간단한 예입니다.


>>> x = [1, 2, 3]

>>> x

[1, 2, 3]

>>>


변수 x는 리스트이며 원소로 1,2,3을 갖습니다. 각각의 원소는 int형이지만 하나의 그룹(리스트)로서 다루어집니다.



리스트에는 다른 자료형 원소들도 함께 담을 수 있습니다. int형과 float형 str형을 한꺼번에 담아보겠습니다.


>>> y = [10, 3.5, 'b']

>>> y

[10, 3.5, 'b']

>>>



y라는 리스트에 서로 다른 자료형들이 순서대로 담겨진 것을 알 수 있습니다.


리스트 안에 리스트를 담을 수도 있습니다. 물론 이렇게 리스트를 여러번 중첩해놓으면 사용하기 까다로워지기 때문에 자주사용되는 편은 아닙니다.


>>> z = [ [1,2,3] , [4,5,6] , [7,8,9] ]

>>> z

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

>>>






ㆍ원소 접근하기


리스트에 원소들을 저장했다면 각각의 원소에 인덱스 접근을 통해 접근할 수 있습니다. 인덱스 접근은 listName[index]형태를 가지며 순열(sequence)형태의 자료형의 원소들에 접근할 때 사용됩니다. 리스트형또한 순열이기 때문에 인덱스 접근을 사용할 수 있습니다. 다음은 x라는 리스트의 원소에 인덱스 접근을 하는 예입니다.


>>> x = [1 , 2 , 3 ]

>>> x[0]

1

>>>


이 때 헷갈리지 말아야할 점은 첫번째 원소는 인덱스 0번부터 시작한다는 것입니다. 따라서 x[0]은 리스트 x의 첫번째 원소에 접근하는 것과 같은 의미입니다.


리스트의 원소에 접근하는 방법을 알았으니 이번엔 원소의 값을 변경해보겠습니다. 값을 변경하는 방법또한 똑같습니다.


>>> x = [1, 2, 3]

>>> x[0] = 10

>>> x

[10, 2, 3]

>>>


x[0]은 리스트 x의 첫번째 원소를 가르키니 x[0] = 10은 그 원소의 값에 10을 대입한다는 말과 같습니다. 이처럼 리스트 자료형은 원소의 값을 변경시킬 수 있습니다. 나중에 배울 튜플 자료형은 인덱스 접근이 가능하지만 값을 변경할 수 없다는 차이점이 있습니다.





ㆍ원소 추가하기


리스트는 원소를 추가할 수 있는 기능을 제공합니다. 리스트에 원소를 추가하기는 listName.append(element)형태를 가집니다.


>>> x = [2, 4, 6]

>>> x.append(8)

>>> x

[2, 4, 6, 8]

>>>


리스트 x의 맨 뒤에 원소하나가 삽입된 것을 볼 수 있습니다.





ㆍ원소 삭제하기


리스트에 원소를 추가하는 기능이 있다면 당연히 삭제하는 기능도 있겠죠? 리스트 원소 삭제하기는 listName.remove(element)형태를 가집니다.


>>> x = [2, 4, 6]

>>> x.remove(2)

>>> x

[4, 6]

>>>


리스트 x의 원소 중 하나인 2가 제거된 것을 볼 수 있습니다. 만약 리스트 원소에 존재하지않은 원소를 지우려고하면 어떻게 될까요?


>>> x = [2, 4, 6]

>>> x.remove(5)

Traceback (most recent call last):

  File "<pyshell#30>", line 1, in <module>

    x.remove(5)

ValueError: list.remove(x): x not in list

>>>


위와같이 리스트 x 안에 해당 값이 존재하지 않는다고 에러가 발생하게 됩니다. 나중에 강좌의 끝에 이러한 에러를 처리하는 방법 즉, 예외 처리도 배우게 됩니다.






ㆍ메서드method


리스트는 순열(Sequence)이기 때문에 순열자료형에게 사용할 수 있는 메서드를 사용할 수 있습니다. 메서드란 기능을 의미합니다. 예를 들어 사람은 모두 밥 먹기, 걷기, 숨 쉬기와 같은 기능을 가지고 있는 것처럼 순열도 원소 추가하기,원소 제거하기, 인덱스로 접근하기와 같은 기능을 가지고 있는 것입니다.


메서드를 사용하기 위해선 변수의 이름 뒤에 마침표 .를 붙이고 메서드이름과 괄호를 적어주면 됩니다. 예를 들어 sort라는 이름의 메서드를 사용해보겠습니다.


>>> x = [3, 5, 10, 2]

>>> x.sort()

>>> x

[2, 3, 5, 10]

>>>


이와 같이 리스트는 다음과 같은 다양한 메서드를 가지고 있습니다. 어떠한 메서드는 괄호안에 값을 넘겨주어야 하는 것도 있고 아닌 것도 있으니 잘 사용하여야 합니다.










#