작성자: admin 작성일시: 2016-09-13 15:15:03 조회수: 1102 다운로드: 98
카테고리: Python 태그목록:

파이썬에서 여러 개의 자료를 한 변수에 담기

지금까지는 하나의 변수에 하나의 자료를 저장했다. 그러나 파이썬에서는 하나의 변수에 여러 개의 자료를 한꺼번에 저장하고 필요한 때에 꺼내 쓸 수도 있다.

파이썬에서 하나의 변수에 여러 개의 자료를 저장하고 쓰는데는 크게 두 가지 방법을 사용한다.

  1. 여러개의 자료가 순서를 가지는 경우에는 주로 리스트(list) 자료형을 사용
  2. 여러개의 자료가 이름을 가지는 경우에는 주로 딕셔너리(dictionary) 자료형을 사용

자료의 순서만 가지는 리스트 자료형

리스트 자료형에는 여러개의 자료를 순서에 따라 저장할 수 있다. 리스트 자료형 변수는 다음과 같이 만든다.

리스트변수 = [자료1, 자료2, 자료3]

이 때 자료의 갯수는 얼마가 되든 상관없다.

In:
x = [88, 90, 100]
In:
x
Out:
[88, 90, 100]

인덱싱

리스트 자료형 변수에서 특정한 자료를 꺼내려면 인덱싱(indexing)이라는 연산을 사용한다.

인덱싱 연산을 하려면 다음과 같이 대괄호(bracket)를 변수 이름 끝에 붙이고 그 안에 자료의 순서를 뜻하는 숫자를 넣는다.

리스트변수[인덱스]

이 때 자료의 순서를 뜻하는 숫자를 인덱스(index)라고 한다. 파이썬에서는 가장 첫번째 자료를 가리키는 인덱스는 1이 아니라 0이다.

In:
x[0]
Out:
88
In:
x[1]
Out:
90
In:
(x[0] + x[1]) / 2
Out:
89.0

연습 문제 1

시험 성적을 나타내는 임의의 5개의 숫자를 리스트 변수 score에 넣고 평균을 구한다.

자료의 이름만 가지는 딕셔너리 자료형

딕셔너리 자료형에는 여러개의 자료를 이름을 붙여서 저장할 수 있다. 딕셔너리 자료형 변수는 다음과 같이 만든다.

딕셔너리변수 = {자료이름1: 자료값1, 자료이름2: 자료값2, 자료이름3: 자료값3}

이 때 자료의 갯수는 얼마가 되든 상관없다.

파이썬에서는 자료의 이름을 키(key)라고 하고 자료의 값을 값(value)라고 한다.

In:
b = {"math": 88, "english": 90, "history": 100}
In:
b
Out:
{'english': 90, 'history': 100, 'math': 88}

딕셔너리 자료형 변수에서 특정한 자료를 꺼낼때도 마찬가지로 인덱싱(indexing) 연산을 한다.

딕셔너리 자료형 변수에서 인덱싱 연산을 하는 경우에도 다음과 같이 대괄호(bracket)를 변수 이름 끝에 붙이고 그 안에 자료의 키를 넣는다.

In:
b["math"]
Out:
88
In:
b["english"]
Out:
90
In:
(b["math"] + b["english"]) / 2
Out:
89.0

파이썬에서는 자료의 키는 무엇이든 가능하다. 즉, 숫자도 키가 될 수 있다.

In:
b2 = {1: 10, 2: 20}
In:
b2
Out:
{1: 10, 2: 20}

연습 문제 2

  1. 윤년이 아닌 평년의 경우에 각 달의 날짜 수를 저장하는 변수 days를 만든다. 이 때 각 달을 표시하는 키는 두 글자짜리 문자열로 한다. 즉, 1월은 "01", 2월은 "02", 12월은 "12"로 한다.

  2. 변수 days를 이용하여 짝수 달의 평균 날짜 수를 구한다.

자료형이 다른 경우

리스트 변수에는 자료형이 같은 자료만 담을 수 있는 것은 아니고 자료형이 다른 자료들도 담을 수 있다. 예를 들어 정수형 자료와 실수형 자료, 그리고 문자열 자료를 한 리스트 변수에 넣는 것도 가능하다.

In:
d = [1, 3.14, "pi"]
In:
d[0]
Out:
1
In:
d[1]
Out:
3.14
In:
d[2]
Out:
'pi'

심지어 리스트 변수에 또 다른 리스트 변수를 넣을 수도 있다.

In:
e = [[1, 10], [2, 20]]
In:
e[0]
Out:
[1, 10]
In:
e[1]
Out:
[2, 20]
In:
e[0][0]
Out:
1
In:
e[0][1]
Out:
10
In:
e[1][0]
Out:
2
In:
e[1][1]
Out:
20

질문/덧글

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