일반적인 프로그래밍 언어와 달리
파이썬에는 특이한 자료형이 있다.
일반적인 통계 분석 프로그램인
SAS와 R에 익숙한 나는
처음 파이썬을 접하게 되었을 때,
이들 자료형에 낯설움을 느꼈다.
튜플(tuple), 딕셔너리(dictionary), 집합(set)
자료형이 바로 그들이다.
※ 기본적인 자료형
(숫자형, 문자, 문자열, 리스트, 불 자료형)은
아래 포스팅 글을 참고하시면 됩니다
그럼 하나하나씩 살펴 보기로 하자.
1. 튜플(tuple)
파이썬을 처음 접한다면,
낯설게 느껴지는 자료형이다.
하지만, 리스트(list) 자료형을 알고 있다면,
어렵지 않는 자료형이다.
결론은,
리스트와 모두 동일하지만,
변경할 수 없는 자료형이라고
알고 있으면 된다.
튜플 표현 방법
리스트는 []로 표현하지만,
튜플은 ()로 자료를 만든다.
인덱싱과 슬라이싱 방법 모두
리스트와 동일하다.
# 생성 방법
tuPle0 = ()
tuPle1 = ('ass','bss')
tuPle2 = (1, 500, 1000)
tuPle3 = 1, 500, 1000
tuPle4 = (1, 500, 1000, 'ass', 'bss')
tuPle4 = (1, 500, 1000, ('ass', 'bss'))
# 출력 예시
print(tuPle1)
tuPle3[2]
tuPle4[3]
# 값 변경 시도
tuPle3[2] = 600
값 변경이 안된다는 것 이외에
모든 것이 리스트 자료형과 동일함을 알 수 있다.
그럼 언제 리스트 자료형을 사용하고,
언제 튜플 자료형을 사용할까?
그 건 프로그램을 작성하면서,
향 후 변경될 가능성이 있는 자료형은
리스트를 사용하고,
변경될 가능성이 없거나,
변경되면 안 되는 자료는
튜플 자료형을 사용하면 된다.
2. 딕셔너리(dictionary)
딕셔너리는 'key'와 'value'가 쌍을 이루는
자료형이라고 생각하면 된다.
이는 데이터 분석을 위한 자료 구조인
데이터 프레임과 연관하여
이해하는 것이 좋다.
'key'는 데이터 프레임의 'column명'이고,
'value'는 데이터 프레임의 '관측값(observation)으로
이해하면 편하다.
딕셔너리 자료형 표현 방법
# 기본적인 표현 방법
dicTionary0 = {key1:value1, key2:value2,...}
# 딕셔너리 자료형 생성 예시
dicTionary1 = {'id': 1, 'score': 948}
dicTionary2 = {'id': [2,3,4,5], 'score': [749, 946, 485, 872]}
dicTionary3 = {1: '1번 고객'}
dicTionary4 = {'id': 1, 'score': [749, 946, 485, 872]}
요소 값에 대한 접근 방법
리스트와 튜플형과 다르게
인덱싱으로 접근할 수 없고,
'key'를 활용하여 접근할 수 있다.
# 접근 예시
dicTionary2['id']
dicTionary4['score']
딕셔너리 관련 내재 함수
딕셔너리 관련 주요 내재 함수는
keys(), values(), items()이다.
keys() 함수는 딕셔너리의 'key'의 값들을
리스트로 반환해 준다.
values() 함수는 딕셔너리의 'value'의 값들을
리스트로 반환해 준다.
마지막으로 items() 함수는 'key'와 'value'의 값들을
모두 리스트로 반환해 준다.
# 사용 예시
dicTionary2.keys()
dicTionary3.values()
dicTionary4.item()
3. 집합(set)
파이썬을 접하면서 가장 궁금한 자료형이다.
이게 언제, 왜 필요할까?
잘 모르겠지만,
향 후 프로그램에서 접하게 될 경우,
당황하지 않기 위해서 작성하여 기억해 둔다.
표현방법
자료를 생성하기 위한 표현 방법은
sEt = set([1,2,3]) 와 같다.
특징
순서가 없고,
중복된 값들은 제외된다.
자료형 네이밍에서 알 수 있듯이,
일반 고등학교 수학 시간에 배우는
교집합(intersection), 합집합(union), 차집합(difference)
의 결괏값을 반환해 준다.
# 자료 생성
sEt0 = set([1,2,3,'one','two','three'])
sEt1 = set([2,3,4,5, 'two','three','four','five'])
# 교집합 연산
sEt0 & sEt1
sEt0.intersection(sEt1)
# 합집합 연산
sEt0 | sEt1
sEt0.union(sEt1)
# 차집합 연산
sEt0 - sEt1
sEt0.difference(sEt1)
예시에서 보면,
순서는 문자열보다는 숫자형이
우선 시 되고,
동일 형 내에서 자동 '오름차순'으로
정렬됨을 알 수 있다.
수많은 데이터 분석을 진행해 보았지만,
현재까지 한 번도 사용해 본 적이 없는
자료형이다.
알고만 있자.
'Python > Python 기초' 카테고리의 다른 글
Python 인터뷰 질문 및 답변 (0) | 2022.07.27 |
---|---|
파이썬 초보자를 위한 클래스와 객체 (0) | 2022.07.04 |
다양한 문자열 출력 방법(%, format, f문자열) (0) | 2022.03.18 |
Pandas 패키지 소개 (0) | 2021.08.11 |
NumPy 패키지 소개 (0) | 2021.08.10 |
댓글