매일 매일 미라클 코딩

유용한 파이썬 문법 - 자료구조형 Data Type (딕셔너리) 본문

알고리즘/PYTHON

유용한 파이썬 문법 - 자료구조형 Data Type (딕셔너리)

뚜벅-뚜벅 2021. 4. 22. 15:30

딕셔너리 타입은 JSON과 같은 {key: value} 구조를 갖고 있다.

 

set 처럼 중괄호를 사용하기 때문에 빈 set 이나 dictionary 를 선언할 때 헷갈릴 수 있다.

중괄호만 쓰면 일단 dict 타입이고, set 타입을 선언하려면 set() 을 사용한다. 

 

a={} #dictionary 타입
b=set() #set을 확실히하려면 이렇게 선언
print(a,type(a))
print(b, type(b))

# 결과
# {} <class 'dict'>
# set() <class 'set'>

 

dict 타입의 기본 활용

JSON 처럼 key 와 value 값을 가진다.

s={'홍길동','홍길동','임꺽정','장길산'}
info ={'홍길동':'활빈당','임꺽정':'의적','장길산':'광대'}

print(s,type(s))		#결과: {'홍길동', '장길산', '임꺽정'} <class 'set'>
print(info,type(info))	#결과: {'홍길동': '활빈당', '임꺽정': '의적', '장길산': '광대'} <class 'dict'>
print(info['홍길동'])	 #결과: 활빈당

 

dict 내용바꾸기

info['임꺽정']='군산' 
print(info)

결과:

{'홍길동': '활빈당', '임꺽정': '군산', '장길산': '광대'}

 

이처럼 키에 해당하는 값을 직접 생성하고 추가할 수 있다. 한 개의 key 에 여러 value 도 가능(물론 배열로).

a = dict()

a["key"] = "값"  		#값 생성 ⇒ a = {"key": "값"}

a["key"].append("은") 		# 값 추가 ⇒ {"key" : ["값","은"] }

#pop으로 꺼낼수도 있다
a["key"].pop() = "은"

 

삭제와 대입


del info['임꺽정']
print(info)				#결과: {'홍길동': '활빈당', '장길산': '광대'}

r = info['장길산'] #장길산에 해당하는 value '광대' 대입
print(r)				# 결과: 광대

info.clear() # 모두삭제

 

딕셔너리 타입도 코딩테스트에서 본인 재량에 맞게 활용하면 아주 유용할 것 같다.

출발지와 도착지 개념처럼 배열의 원소를 연관성에 따라 정리할 때 유용하다.

혹은 Counter 함수를 사용하면 배열을 dictionary 타입으로 정리해 주는데,

딕셔너리 타입끼리 연산도 가능하여 일치 하지 않는 정보를 찾아낼 수도 있다.