본문 바로가기

Programming/[Python]

[Python/점프 투 파이썬 복습] 2. (3) Python 프로그래밍 자료형(튜플, 딕셔너리 자료형)

복습용/초보자 참고를 목적으로 포스팅합니다.

 

최근 들어 프로그래밍 언어들 중 직관적인 표현으로 코딩이 가능한 Python이 인기를 끌고 있습니다.

 

코드 구성의 가독성이 타 언어 대비 뛰어나고, C/C++/JAVA 에서 구현 가능한 모든 것들을 Python에서도 만들 수 있습니다.

데이터 분석부터 머신러닝, 딥러닝 등 다양한 분야에서 활용 가능한 언어 Python 지금부터 차근차근 공부해봅시다.

 

 

2. (3) 자료형(튜플, 딕셔너리)

 

2. 4 튜플 자료형

 

앞서 리스트 자료형에서 알아보았는데 튜플은 리스트 자료형과 매우 유사한 성격을 띱니다.

몇 가지 차이점이 있다면

  • 리스트는 [ ], 튜플은 ( )을 이용합니다.

  • 리스트는 요소들의 수정, 생성, 삭제가 가능하지만 튜플은 요소들을 바꿀 수 없습니다.

튜플의 모습을 살펴보면 다음과 같습니다.

# 튜플 예시
tuple1 = ()
tuple2 = (1,)
tuple3 = (1, 2, 3)
tuple4 = 1, 2, 3
tuple5 = ('a', 'b', ('c', 'd'))

인덱싱과 슬라이싱, 더하기(+), 곱하기(*) 방법 모두 리스트와 동일하므로 설명은 생략하겠습니다.


2. 5 딕셔너리 자료형

 

지금까지 여러 요소들을 가질 수 있는 자료형에 대해서 알아보았습니다.

그렇다면 그 요소들을 단순하게 나열하는 것이 아니라 쌍으로 묶어 표현이 가능할까요?

딕셔너리(Dictionary)를 이용하면 가능합니다.

 

이렇게 Key와 Value 한 쌍으로 묶인 요소들은 서로 대응관계를 가지게 됩니다.(이를 연관배열 또는 해쉬라고 합니다.)

예를 들어 '과일 이름' = '사과', '가격' = '2달러', '원산지' = '한국'으로 의미 해석이 가능합니다.

그럼 딕셔너리를 만드는 방법을 예시를 통해 살펴보겠습니다.

# 딕셔너리 예시
dic = {'name' = 'Python', 'phone' = '01234567', 'birth' = '1111'}

각 Key와 Value의 쌍 여러개가 중괄호{ } 안에 둘러싸여 있습니다.

각 요소는 Key와 Value로 구성되어 쉼표로 분리되고 있습니다. 

예시에서 Key는 'name', 'phone', 'birth' 이고 Value는 'Python', '01234567', '1111'이 됩니다.


딕셔너리의 쌍 추가, 삭제

 

딕셔너리의 쌍을 추가할 때 순서는 배제되고 어떤 값이 추가되었는지가 중요합니다.

딕셔너리의 쌍을 추가하는 방법은 다음과 같습니다.

dic[Key] = Value

# 딕셔너리 쌍 추가

a = {1:'a'}
a[2] = 'b' 
a # {2:'b', 1:'a'}

a[3] = [1, 2, 3]
a # {3:[1, 2, 3], 2:'b', 1:'a'}

딕셔너리의 쌍을 삭제할 때는 대괄호 안에 삭제를 원하는 요소의 Key를 입력합니다.

del dic[Key]

# 딕셔너리 요소 삭제

a = {3:[1, 2, 3], 2:'b', 1:'a'}
del a[3]
a # {2:'b', 1:'a'}

딕셔너리의 사용 방법

 

딕셔너리는 언제 사용할까요?

예를 들어 각자의 특색이 있는 4명의 사람이 있다고 가정해 보겠습니다.

# 딕셔너리 사용 예시

{"김연아":"피겨스케이팅", "류현진":"야구", "박지성":"축구", "귀도 반 로썸":"파이썬"}

이처럼 딕셔너리를 사용하면 간단하게 표현이 가능합니다.

또한 위에서 설명했듯 만들어진 딕셔너리에서 Key를 통해 Value 추출이 가능합니다.

 

단, 딕셔너리를 만들 때 주의할 점이 있습니다.

  • 딕셔너리에서 Key는 고유한 값이므로 중복되는 Key 값을 설정 시 하나를 제외한 나머지가 무시됩니다.

  • Key 값으로 리스트는 사용할 수 없습니다. 하지만 튜플은 사용이 가능합니다.
    즉, 변하는 값은 Key로 사용할 수 없습니다.

이와 같은 Key의 특성은 꼭 알고 넘어가는 것이 좋습니다.


딕셔너리 관련 함수들

 

딕셔너리에도 사용을 편하게 해주는 내장 함수가 존재합니다.

a = { 'Key' : 'Value'}

함수 설명
a.keys 딕셔너리의 Key만 모아서 dict_keys객체로 리턴
a.values 딕셔너리의 Value만 모아서 dict_values객체로 리턴
a.items 딕셔너리의 Key와 Value 쌍을 튜플로 묶은 값을 dict_items객체로 리턴
a.clear 딕셔너리 안의 모든 요소 삭제
a.get Key자리에 대응되는 value를 리턴
'Key name' in a 해당 Key가 딕셔너리 안에 있는지 판단(boolean)