파이썬에서 기본적으로 제공하는 자료구조는 리스트, 튜플, 딕셔너리, 집합이 있습니다. 또 사람들이 파이썬을 더 편하게 쓰기위해 만들어낸 자료구조로 Array, Series, DataFrame 이 있습니다.
- 리스트
- 튜플
- 딕셔너리
- 집합
- Array (넘파이 패키지)
- Series (판다스 패키지)
- DataFrame (판다스 패키지)
오늘 배워볼 자료구조는 튜플(tuple) 입니다. 튜플은 리스트처럼 값들을 순서가 있게 나열해 놓은 것입니다. 리스트와의 차이는 아래와 같습니다.
"리스트는 원소를 수정할 수 있지만 튜플은 불가능함"
원소를 수정할 수 있다는 것을 mutable(가변), 변경할 수 없다는 것을 immutable(불변) 이라고 합니다. 수정이 불가능하다는 것을 제외하고는 리스트와 같습니다. 리스트의 성질을 가져와봅시다.
1) 모든 자료형을 원소로 가질 수 있고 혼합하여 갖는 것도 가능함
2) 모든 자료구조를 원소로 가질 수 있고 혼합하여 갖는 것도 가능함
3) 인덱싱 및 슬라이싱 가능 (원소의 순서가 있음)
4) 인덱싱을 이용한 원소 수정이 가능함
5) 원소 삭제/추가가 가능함
6) 덧셈 연산이 가능함
7) 정수 곱셈 연산이 가능함
위 성질에서 4,5번만 제외하면 됩니다.
튜플은 소괄호를 이용하여 정의합니다. 리스트는 대괄호를 이용하여 정의했었습니다 .
>>> a=(1,2,3)
>>> a
(1, 2, 3)
원소를 수정하려고 시도해보겠습니다. 첫번째 원소를 10으로 바꾸려고 해봅시다.
>>> a[0]=10
Traceback (most recent call last):
File "<pyshell#43>", line 1, in <module>
a[0]=10
TypeError: 'tuple' object does not support item assignment
오류가 발생합니다.
리스트가 있는데 튜플을 굳이 만들어 사용하는 이유가 뭘까요?
튜플이 리스트보다 속도가 빠르고, 메모리를 적게 쓰긴 하지만 이것 때문에 튜플을 정의했을 것 같지는 않습니다. 튜플은 절대 바뀌면 안되는 값을 정의할 때 사용할 수 있습니다. 주민등록번호나 수험번호 같은 값들입니다. 인덱싱이나 이런저런 처리를 하다가 실수로 바뀌면 큰일나는 값들이죠.
인덱싱과 슬라이싱의 원리는 리스트와 동일하니 다루지 않겠습니다.
'파이썬 > 통계분석' 카테고리의 다른 글
[파이썬 강의] 21. 딕셔너리 key의 특징 (0) | 2021.10.07 |
---|---|
[파이썬 강의] 20. 자료구조 - 딕셔너리 (0) | 2021.10.07 |
[파이썬 강의] 18. 리스트의 덧셈과 곱셈 (0) | 2021.10.07 |
[파이썬 강의] 17. 리스트 원소 추가 (두 가지 방법) (0) | 2021.10.07 |
[파이썬 강의] 16. 리스트 원소 삭제 (두가지 방법) (0) | 2021.10.07 |
댓글