본문 바로가기

공부/python

(python) 리스트 1 - 리스트 요소, 리스트 순회, 리스트 클래스, 복잡한 리스트

앞에서 간단하게 다루어봤던 리스트를 더 자세히 설명한다.

 

리스트(list)는 여러 개의 데이터가 저장되어 있는 장소이다. 그래서 많은 값을 한 곳에

저장하여 관리할 수 있다. 대용량의 자료를 저장하는 기본적인 구조 중의 하나이다.

리스트는 다음과 같이 [ ]안에 값을 나열하면 생성된다.

 

리스트가 필요한 이유

리스트 없이 10명의 점수를 입력받아 저장하고, 평균을 계산하여 그 값을 출력하는 상황을

가정해보자. 평균을 계산하려면 먼저 각 학생들의 점수를 받고 저장해야하는데 데이터를

저장해야할 변수만 10개이다. 만약 학생이 30명, 100명, 1000명, 더 늘어나면 이 데이터를

생성하고 관리하는데 매우 힘들어질것이다.

 

리스트는 쉽게 대량의 데이터를 저장할 수 있는 공간을 만들고, 처리할 수 있다.

 

리스트 요소 접근하기

리스트에 작성된 데이터들을 리스트 요소(list element)라고 한다. 리스트의 요소에 붙은 번호를

인덱스(index)라고 부른다. 이걸로 리스트 요소에 접근한다.

리스트의 이름을 쓰고 괄호[ ]안에 번호를 표시하면 리스트 요소가 된다.

저번에 배웠다시피 파이썬에서 리스트 번호는 0부터 시작한다.

 

아래의 예를 보자.

scores리스트에서 번호가 5인 요소에 접근하려면 scores[5]과 같이 적어주면 된다.

 

리스트 요소는 변수와 성격(?)이 완벽히 같다. 리스트 요소에 값을 저장할 수 있고 리스트 요소에

저장된 값을 꺼낼 수도 있다.

 

리스트 0번째 요소에 80을 저장한다.

-----

리스트 0번째 요소의 값을 1번째 요소로 복사한다.

-----

변수나 수식도 인덱스로 사용할 수 있다.

-----

리스트 요소에 인덱스 범위를 확인하고 값을 저장하는 코드는 다음과 같다.

 

리스트 순회하기

리스트에 있는 요소들을 순서대로 방문하는 작업은 아주 많이 나타난다.
아래의 예를 보자.

len(scores)가 리스트의 크기를 반환하고, 변수 i는 0, 1, 2, ... ,6으로 변경되고

scores[i]는 변수 i에 해당된 번호의 리스트 요소가 된다.

 

단순히 리스트 요소의 값을 알고 싶은 경우에는 다음과 같은 형식을 사용할 수 있다.

리스트 안의 요소들이 차례대로 변수에 대입되면서 반복된다.

리스트의 모든 요소를 출력시키려면 다음과 같은 형식을 사용할 수 있다.

scores 리스트의 첫 번째 요소부터 변수 element에 할당되고 반복 루프 안의

문장들이 실행된다.

 

list 클래스

리스트는 list 클래스에 의하여 정의된다. list 클래스의 생성자를 이용한 리스트 생성도

가능하다. 클래스의 개념에 대해서는 이후에 배울 예정이다.

다음은 리스트를 생성하는 방법들이다.

위의 방법들은 초기값을 사용하여 리스트를 생성하는 방법과 동일하다.

-----

type()을 이용하여 데이터자료형이 뭔지 출력해보았다.

-----

 

복잡한 리스트

동일한 자료형 뿐만 아니라 서로 다른 자료형의 요소를 하나의 리스트 안에

포함할 수 있다. 또 리스트 안에 다른 리스트를 포함시키는 것도 가능하다.

 

다음의 예를 참고하자.