-
파이썬의 자료형 - 리스트Python/study 2013. 12. 18. 01:21
※ 주의사항
아래 공격 코드는 연구 목적으로 작성된 것이며, 허가 받지 않은 공간에서는 테스트를 절대 금지합니다.
악의 적인 목적으로 이용할 시 발생할 수 있는 법적 책임은 자신한테 있습니다. 이는 해당 글을 열람할 때 동의하였다는 것을 의미합니다.
해당 문서의 저작권은 해당 저자에게 모두 있습니다. 다른 용도로 사용할 시 법적 조치가 가해질 수 있습니다.
상세 분석
이번에는 리스트라는 것에 대하여 알아보도록 하겠습니다.
리스트라는 것은 어떤 객체들을 순차적으로 나열해 놓은 것을 말합니다. 이렇게 말하니 감이 안오실 수도 있습니다.
그러면 배열과의 비교를 통해서 쉽게 이해할 수 있도록 해보겠습니다.
먼저 배열은 다음과 같은 형태를 가집니다.
배열이라는 것은 같은 형으로 명시된 공간들을 순차적으로 이어 붙여 하나의 열을 만드는 것입니다.
위의 예로 든 str 같은 경우에는 문자형의 공간들을 순차적으로 이어붙이고 "Hello World"라는 값을 넣은 하나의 문자열입니다. 다음으로 밑에 있는 num 같은 경우에는 숫자형의 공간들을 순차적으로 이어 붙여 하나의 열을 만든 것입니다.
이 두 열의 특징이 있습니다. 첫 번째는 앞에서부터 순차적으로 번호가 부여되어 있다는 점. 두 번째는 하나의 배열을 구성하는 명시된 공간들은 모두 같은 자료형이라는 것입니다. 눈치 채신 분들도 있을 것입니다. 여기서 말하고자 하는 것은 즉, 하나의 배열은 같은 자료형으로 이루어져 있다는 것입니다.
이제 리스트를 살펴보도록 하겠습니다.
리스트라는 자료형은 앞에서부터 순차적으로 번호가 부여된다는 점은 배열과 같습니다.
하지만 위 그림을 보시길 바랍니다. 리스트라는 자료형은 언뜻 배열과 비슷하지만 엄청 커다란 차이가 있습니다.
바로 열을 구성하는 명시된 공간들의 자료형이 제각각이라는 것입니다. 리스트에는 모든 자료형이 구성요소로서 하나의 열의 형태를 가질 수가 있습니다.
그렇다고해서 리스트를 구성하는 요소들의 자료형이 무조건 제각각일 필요는 없습니다.
리스트에도 숫자형만 열의 형태로 늘어놔도 되는 것입니다. 그것은 숫자형이든, 문자형이든, 문자열이든 혹은 리스트 그 자신이든 그 어떤 형태가 되어도 상관이 없습니다. 그럼 파이썬에서 리스트를 생성하는 것부터 알아보도록 하겠습니다.
list 라는 공간을 명시하고 대괄호를 엽니다. 그리고는 순차적으로 리스트에 들어갈 자료를 입력한 뒤 대괄호를 닫습니다.
출력해보면 입력한 대로 Red, Yellow, Green, Blue 라는 문자열들이 차례로 나타나는 것을 볼 수 있습니다.
정리 17) list = [ 1, 'a', "abc" ] : 리스트를 생성할 때는 대괄호를 이용합니다.
리스트의 각 요소들은 Red부터 0,1,2,3 이라는 번호를 부여받습니다. 이 번호를 이용하여 리스트의 각 요소들을 나타냅니다.
그러면 이 번호를 활용하여 리스트를 사용하는 방법을 알아보도록 하겠습니다.
번호를 이용하여 리스트의 특정 순서에 있는 데이터를 출력하거나 다른 공간에 저장을 할 수 있습니다.
혹은 위와 같이 리스트의 일부를 가져와 다른 곳에 저장하는 것도 가능합니다.
또 리스트를 연결할 때는 배열과 마찬가지로 '+' 연산자를 사용합니다.
그런데 리스트에서는 배열에서 제공하지 않는 몇가지 기능들이 있습니다. 리스트의 특징이라고도 할 수 있는 기능들입니다.
어떤 기능들일까요? 바로 눈으로 보도록 하겠습니다.
처음으로 .append() 메소드입니다.
.append() 메소드는 리스트형에서 사용할 수 있는 메소드로 해당 리스트의 가장 끝에 자료를 추가해줍니다.
리스트의 끝번호를 몰라도 .append() 메소드를 사용하면 간단하게 이어붙일 수 있습니다.
다음은 .insert() 메소드입니다.
.insert() 메소드는 리스트의 지정위치에 자료를 추가하는 기능을 가지고 있습니다. 위의 예에서는 기존 리스트의 2번자리에(즉, 세번째 위치가 될 것입니다.) Brown이라는 문자열을 삽입하는 과정을 보여주고 있습니다.
위와 같은 기능들을 사용하면 리스트를 사용할 때 사소하게나마 빠른 작업을 할 수 있도록 도움이 될 것입니다.
지금까지는 계속해서 문자열을 가지고만 예시를 들었습니다. 앞부분에서 설명했듯이 리스트에는 자료형의 제한없이 데이터를 구성요소로 연결할 수가 있습니다. 그러한 예를 두가지정도 들어보고 리스트에 대한 설명을 마치도록 하겠습니다.
위와 같이 list에는 많은 자료형의 데이터들이 순차적으로 연결되어 있습니다. 이 중에는 숫자형, 문자열, 배열, 리스트에 해당하는 데이터들이 있네요.
가장 먼저 list[1]을 출력해보았더니 리스트에서 1의 위치에 해당하는 문자열 Haerakai가 출력되었습니다. 다음으로 list[3]을 출력하였더니 3의 위치에 해당하는 배열 (2,3,4,5)가 출력되었습니다.
그 다음은... 음.. C언어에서 보던 2차원 배열을 나타낼 때 쓰던 형식입니다!! 갑자기 2차원 배열이라니요.
하지만 겁먹을 필요 없습니다. 이건 2차원 배열이라고 생각할 것까지는 없습니다. 3의 위치에 배열이 있다는 것은 알고 있습니다. 하지만 앞에서 list[3]을 출력했을때 우리 파이썬 인터프리터는 배열 전체를 출력해주었습니다.
그렇다면 리스트 내에 존재하는 배열의 요소는 어떻게 출력 혹은 추출을 할까요? 이때 나오는 것이 C언어에서 사용하였던 2차원 배열을 표현하는 방법을 사용하는 것입니다. list[3][0] 이것은 리스트에서 3번 위치에 있는 요소에서 첫번째 요소를 출력하라는 의미를 가지고 있습니다. 따라서 3번위치에 있는 배열 (2,3,4,5)에서의 첫번째 값이 2가 출력된 것입니다.
그 뒤에 내용도 같은 맥락입니다. 리스트에서 4번에 위치하는 요소를 먼저 찾고(리스트네요), 4번에 위치하는 리스트 내에서 1번에 위치하는 요소를 찾습니다.(또 리스트네요) 그리고 찾은 요소에서 2번에 위치하는 요소를 찾습니다. 그리고 출력하는 것입니다.
자, 이제 리스트에 대한 개념이 잡히셨을 거라 생각하고 리스트에 대한 설명을 마치도록 하겠습니다.
정리모음
정리 17) list = [ 1, 'a', "abc" ] : 리스트를 생성할 때는 대괄호를 이용합니다.
참고 URL 및 도서
- 파이썬 완벽 가이드, 데이비드 M. 비즐리 저, 2012년, 인사이트 펴냄
'Python > study' 카테고리의 다른 글
파이썬의 파일 입출력 (0) 2013.12.18 파이썬의 조건문 (0) 2013.12.18 파이썬의 자료형 - 사전 (0) 2013.12.18 파이썬의 자료형 - 집합 (0) 2013.12.18 파이썬의 자료형 - 튜플 (0) 2013.12.18 파이썬의 자료형 - 문자열(추가) (0) 2013.12.18 파이썬의 자료형 - 문자열 (1) 2013.12.13 파이썬의 자료형 - 숫자형 (2) 2013.12.11 파이썬을 시작하는 방법 (1) 2013.12.11 파이썬(Python)을 시작하며... (4) 2013.12.11