본문 바로가기

파이썬3/기초

딕셔너리 (dictionary)

728x90
반응형

딕셔너리는 key와 value로 구성되어 있다. R의 리스트와 비슷하다.

 

예를들어 지금 사용하는 컴퓨터의 구성 요소를 설명한다고 보자.

 

컴퓨터에는 CPU, GPU, RAM, 메인보드 등의 다양한 모델 정보가 있을 것이다.

 

리스트나 튜플은 단순한 나열만 가능할 것이지만 딕셔너리는 {key1:value1, key2:value2, ....}로 구성된다.

# 모델명들
cpu = 'a1234'
gpu = 'b1234'
ram = '16gb'
board = 'msi1234'

# 리스트
[cpu, gpu, ram, board] # ['a1234','b1234','16gb','msi1234']

# 튜플
cpu, gpu, ram, board # ('a1234','b1234','16gb','msi1234')

# 딕셔너리
{'cpu':cpu,'gpu':gpu,'ram':ram,'board':board}
# {'cpu':'a1234','gpu':'b1234','ram':'16gb','board':'msi1234}

 

딕셔너리 수정은 아래와 같이한다.

# 추가하기
a = {1:'a'}
a[2] = 'b' # {2:'b'} 추가
a['hi'] = 'hello'
a # {1:'a',2:'b','hi':'hello'}

# 삭제하기
del a[1] # key가 1인 {key:value} 삭제
a # {2:'b','hi':'hello'}

 

보면 알겠지만 딕셔너리는 리스트와 튜플과 달리 슬라이싱이 되지 않고 [ ]는 key값을 넣어야 한다.

혹은 dict.get()을 쓰면된다. 둘의 차이는 key값이 없는 경우 get은 오류를 발생시키지만 []는 None값을 반환한다.

get에서 오류를 발생시키지 않으려면 반환시킬 값을 미리 지정할 수 있다.

a = {1:'a',2:'b','hi':'hello'}
a[0] # KeyError: 0
a['hi'] # 'hello'
a.get('hi') # 'hello'

a['gutentag'] # []
a.get('gutentag') #KeyError

a.get('gutentag','Are you german?') # 'Are you german?'

 

딕셔너리의 key값을 알고 싶으면 dict.keys()로 실행해서 알 수 있다.

value를 알고 싶으면 dict.values()를 쓰면 된다.

a = {1:'a',2:'b','hi':'hello'}
a.keys() # dict_keys([1,2,'hi'])
a.values() # dict_values(['a','b','hello'])
a.items() #  dict_items([(1, 'a'), (2, 'b'), ('hi', 'hello')])

 

2가지의 리스트가 있을 때는 dict(zip(a_list,b_list))를 통해 딕셔너리로 만들 수 있다.

여기서 앞의 것이 key가 되고 뒤의 것이 value가 된다.

a = ['a','b','c','d']
b = [1,2,3,[1,2,3,4]]

c = dict(zip(a,b))
c # {'a':1,'b':2,'c':3,'d':[1,2,3,4]}
728x90
반응형

'파이썬3 > 기초' 카테고리의 다른 글

불 (bool) 자료형  (0) 2021.12.30
집합 (set)  (0) 2021.12.29
튜플 (tuple)  (0) 2021.12.28
리스트 (list) 수정하기  (0) 2021.12.27
리스트 (list) 자료형  (0) 2021.12.27