본문 바로가기
개발 이야기/Python

Python - 07. 딕셔너리(dict) 자료형

by Crazy Lazy 2021. 7. 18.

1. 딕셔너리(dict) 정의 및 특징.

- key 와 value 형태의 대응 관계의 자료형으로, 연관 배열(Associative array) 또는 해쉬(Hash)라고 일컫음.

- 파이썬에선 이러한 자료형을 딕셔너리(Dictionary)라고 함.

- 순차적 검색이 아닌 key 를 통한 value 를 구하는 형태.

- 동일 key 를 할당할 경우 마지막 설정한 값을 따름.

- list 는 key 로 사용 불가. (tuple 은 가능)

a={}
b={'name':'yr','phone':'01012345678'}
c={1:'abc'}
d={'a':[1,2,3]}

e={1:'a',1:'b','a':1,'a':2}
e		# 결과 : {1: 'b', 'a': 2}

f={[1,2]:'a'}	# 결과 : 오류

g={(1,2):'a'}
g		# 결과 : {(1, 2): 'a'}

 

2. 요소 추가/수정/삭제

a={'name': 'yr', 'phone': '01012345678'}
b={}
c={}
print(a)	# 결과 : {}
print(b)	# 결과 : {}
print(c)	# 결과 : {}


# 요소 추가.
a[1]='test'	# 여기서 1은 index 가 아닌 key 임.
b[1]='abc'	# 여기서 1은 index 가 아닌 key 임.
c['a']=[1,2,3]
print(a)	# 결과 : {'name': 'yr', 'phone': '01012345678', 1: 'test'}
print(b)	# 결과 : {1: 'abc'}
print(c)	# 결과 : {'a': [1, 2, 3]}


# 요소 수정.
a[1]='test2'	# 여기서 1은 index 가 아닌 key 임.
print(a)	# 결과 : {'name': 'yr', 'phone': '01012345678', 1: 'test2'}


# 요소 삭제.
del a[1]	# 여기서 1은 index 가 아닌 key 임.
print(a)	# 결과 : {'name': 'yr', 'phone': '01012345678'}

 

3. 관련 함수들.

a={'name':'yr','phone':'01012345678'}

# key 반환 : 반복문에선 list 처럼 사용가능하나, 요소 변경 불가.
a.keys()			# 결과 : dict_keys(['name', 'phone'])

# 리스트로 변환하여 반환
list(a.keys())			# 결과 : ['name', 'phone']

# value 반환
a.values()			# 결과 : dict_values(['yr', '01012345678'])

# key, value 한 쌍씩 요소 반환
a.items()			# 결과 : dict_items([('name', 'yr'), ('phone', '01012345678')])

# key 로 value 얻기 : a['name'] 과 유사, 미존재 시 오류 발생여부 다름. (get 미존재 시 None 반환, 미존재 시 대체값 설정 가능)
print(a.get('name'))		# 결과 : yr
print(a['name'])		# 결과 : yr

# key 미존재 시
print(a.get('addr'))		# 결과 : None
print(a['addr'])		# 결과 : 오류

# key 미존재 시 대체값 처리.
a.get('name', 'no no no')	# 결과 : 'yr'
a.get('addr', 'no no no')	# 결과 : 'no no no'

# key 존재 여부 확인.
'name' in a			# 결과 : True
'NAME' in a			# 결과 : False

# 초기화 (모두 삭제)
a.clear()
a				# 결과 : {}