작성자: admin 작성일시: 2016-09-17 18:54:48 조회수: 1057 다운로드: 96
카테고리: Python 태그목록:

파이썬에서 리스트 자료형 다루기

자료의 갯수

리스트 변수에 자료가 몇 개 들어가 있는지 알기 위해서는 len이라는 명령을 사용한다.

In:
a = [1, 2, 3]
In:
len(a)
Out:
3

수열 생성하기

0부터 n-1까지 1씩 증가하는 n개의 숫자를 가지는 수열 리스트는 range 명령으로 생성한다.

In:
b = range(10)
b
Out:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

만약 0이 아닌 다른 수부터 증가하게 하려면 다음과 같이 range 명령에 두 개의 숫자를 넣는다. range 명령은 두 숫자 x, y 에 대해 x보다 같거나 크고(이상), y보다 작은(미만) 수열을 만든다. 즉 x는 시작값(start), y는 포함되지 않는 끝값(end) 역할을 한다.

In:
c = range(1, 10)
c
Out:
[1, 2, 3, 4, 5, 6, 7, 8, 9]

만약 1씩 증가하는 것이 아니라 2 혹은 3씩 증가하는 수열을 만들고 싶다면 range 명령에 세 개의 숫자를 넣는다. 세번째 숫자는 건너 뛰기 숫자(step) 역할을 한다.

In:
d = range(1, 10, 3)
d
Out:
[1, 4, 7]

값을 바꾸기

특정한 원소의 값을 다른 값으로 바꾸는 것을 갱신(update)이라고 한다. 리스트의 특정 원소의 값을 갱신하려면 다음과 같이 인덱싱한 값에 새로운 값을 대입하면 된다.

In:
d[0] = 100
d
Out:
[100, 4, 7]

자료 추가하기

리스트 변수의 마지막에 자료를 더 추가하려면 다음과 같이 append 메서드를 사용한다. 이 때 메서드란 변수 다음에 점(.)을 찍고 쓰는 명령을 말한다.

In:
e = range(4)
e
Out:
[0, 1, 2, 3]
In:
e.append(4)
e
Out:
[0, 1, 2, 3, 4]
In:
e.append(10)
e
Out:
[0, 1, 2, 3, 4, 10]

자료 삭제하기

리스트에서 자료를 하나 삭제하려면 다음과 같이 del 명령을 사용한다.

In:
f = range(5)
f
Out:
[0, 1, 2, 3, 4]
In:
f[0]
Out:
0
In:
del f[0]
f
Out:
[1, 2, 3, 4]
In:
f[2]
Out:
3
In:
del f[2]
f
Out:
[1, 2, 4]

슬라이싱

리스트에서 자료를 하나만 가져오는 것이 아니라 특정 범위의 자료를 모두 가져오고 싶다면 슬라이싱(slicing)이라는 방법을 사용한다.

슬라이싱은 콜론(:)이라는 기호를 사용하여 리스트의 자료 범위를 나타내는 연산이다.

예를 들어 20개의 숫자가 있는 리스트에서 앞의 5개만 가져오고 싶으면 다음과 같이 입력한다.

In:
g = range(20)
g
Out:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
In:
g[0:5]
Out:
[0, 1, 2, 3, 4]

이 때 앞의 0이라는 숫자는 생략할 수 있다.

In:
g[:5]
Out:
[0, 1, 2, 3, 4]

만약 11 번째에서 15번째까지의 자료라면 다음과 같다.

In:
g[10:15]
Out:
[10, 11, 12, 13, 14]

역 인덱싱

음수 인덱스를 사용하면 뒤에서부터 원소를 가리키게 된다. 이때 가장 뒤의 원소는 0이 아니라 -1 이라는 인덱스를 사용한다.

In:
g[-1]
Out:
19

음수 인덱스를 사용하는 경우에도 슬라이싱을 할 수 있다. 두번째 인덱스가 생략되면 끝까지를 의미한다. (-1을 쓰는 경우와 다르다.)

In:
g[-5:-2]
Out:
[15, 16, 17]
In:
g[-3:]
Out:
[17, 18, 19]
In:
g[-3:-1]
Out:
[17, 18]

연습 문제 1

  1. 리스트에는 숫자 뿐 아니라 문자 등 어떤 값도 넣을 수 있다. 10명으로 이루어진 반의 학생 이름을 생각하여 리스트 변수로 만들어 본다.
  2. 전학생이 왔다고 가정하여 리스트에 이름을 추가한다.
  3. 한 명이 전학을 갔다고 가정하고 리스트에서 이름을 삭제한다.
  4. 슬라이싱으로 5번 학생(1번 학생은 가장 처음에 있는 학생이다.)부터 9번 학생까지 5명의 이름을 담은 새로운 리스트를 만든다.

질문/덧글

아직 질문이나 덧글이 없습니다. 첫번째 글을 남겨주세요!