본문 바로가기
프로그래밍 언어/Python

[Python] 파이썬 사전 자료형 정리

by Kallunar 2023. 10. 20.

1. 사전(dictionary) 자료형?

  • (key, value) 쌍으로 데이터를 저장하는 자료형이다.
  • 따라서 key로 데이터에 접근한다.
  • 중괄호 { } 를 사용하여 나타낸다.

 

2. 빈 사전 선언하기

dic = dict()

# 또는

dic = {}

 

3. 사전에 데이터 저장하고 접근하기

dic = {}
dic['사과'] = 'apple'	  # {'사과': 'apple'}
dic['바나나'] = 'banana'  # {'사과': 'apple', '바나나': 'banana'}

fruit1 = dic['사과']   # 'apple'
fruit2 = dic['바나나'] # 'banana'

 

4. 사전에 특정한 key가 있는지, 없는지 확인할 때

  • 'in' 또는 'not in' 을 사용한다.
  • value 에 해당하는 값이 아닌 key 에 해당되는 값을 찾아야 한다는 점에 유의하자.
dic = {'사과': 'apple', '바나나': 'banana'}

'사과' in dic  # True
'apple' in dic # False

 

5. 사전 자료형 활용 메서드(method)

  • get(key) : key에 해당하는 value를 반환한다.
  • keys() : key 값들만 담은 리스트를 갖는 dict_keys 객체를 반환
  • values() : value 값들만 담은 리스트를 갖는 dict_values 객체를 반환
  • items() : (key, value) 형태의 튜플들을 담은 리스트를 갖는 dict_items 객체를 반환
dic = {'사과': 'apple', '바나나': 'banana'}

dic.get('사과')     # 'apple' => dic['사과'] 와 동일하다.

dic.keys()          # dict_keys(['사과', '바나나'])
key_list = list(dic.keys())    # ['사과', '바나나']

dic.values()        # dict_values(['apple', 'banana'])
list(dic.values())  # ['apple', 'banana']

dic.items()         # dict_items([('사과', 'apple'), ('바나나', 'banana')])
list(dic.items())   # [('사과', 'apple'), ('바나나', 'banana')]

# 각 키에 따른 값을 하나씩 출력하기
for key in key_list:
  print(dic[key])
# apple
# banana

 

6. dict_keys / dict_values / dict_items 객체?

  • 사전 자료형에 대한 활용함수 keys(), values(), items() 의 반환 타입은 리스트가 아닌 클래스이다.
  • 'for ... in ...' 구문을 활용하여 리스트처럼 접근할 수는 있으나 그 뿐, 본질적으로 리스트와 다르다.
  • 따라서 리스트를 사용하고 싶다면 list() 함수를 이용해 형변환을 시켜야 한다.
dic = {'사과': 'apple', '바나나': 'banana'}

type(dic.keys())          # <class 'dict_keys'>
type(dic.values())        # <class 'dict_values'>
type(dic.items())         # <class 'dict_items'>

# for ~ in ~ 구문을 통해 리스트처럼 접근하는 것은 가능
for key in dic.keys():
  print(dic[key])
# apple
# banana

# 리스트처럼 아예 인덱스로 접근하는 것은 불가능
data = dic.keys()
data[0] # TypeError: 'dict_keys' object is not subscriptable!

 

댓글