Programming

; develop a program

Back-End/Python

[Python] 자료구조 - Dictionary(사전)

Clloud_ 2022. 9. 19. 11:27
반응형

이번 포스팅에서는 파이썬의 4가지 자료구조 중 하나인 Dictionary(사전)에 대하여 공부를 해보고자 한다.

 


Dictionary(사전)

Dictionary(사전)는 값을 키(key) - 값(value) 쌍의 형태로 저장하는 자료구조다.

리스트나 튜플의 index의 역할을 하는 key를 직접 지정한다.

 

별도로 정의한 키(key)를 통해 각 요소에 접근할 수 있고, 키(key)를 가지고 그 키에 해당하는 값(value)을 찾을 수 있다.

 


Dictionary 생성

딕셔너리는 중괄호({ })로 감싸서 생성하고, 딕셔너리의 각 원소(element)들은 쉼표(,)를 사용하여 구분한다.

원소는 또다시 키(key)와 값(value)의 한 쌍으로 구성되며, 이 둘은 콜론(:)으로 연결된다.

ex) { 키 : 값, 키 : 값, 키 : 값 }

 

Dictionary를 생성해주는 함수

ex) dict(key=value, key=value)

 

예제

순서 1. 딕셔너리를 생성한다.

순서 2. dict( ) 함수를 이용하여 딕셔너리를 생성한다.

f_cnt = {"사과": 30, "귤": 20, "수박": 10}
f_cnt2 = dict(사과=50, 귤=100, 수박=70)

 


Dictionary 원소 조회 및 변경

딕셔너리는 대괄호([ ])를 사용하여 키(key)를 전달함으로써 해당 키(key)로 저장된 값을 조회할 수 있다.

딕셔너리의 내장 함수인 get( ) 함수를 사용해도 같은 결과를 얻는다.

get( ) 함수는 없는 키(key)로 조회 시 None을 반환한다.

ex) dict [ 키 ], dict.get('키')

 

대괄호([ ]) 안에 키(key)를 넣고 대입 연산자(=)를 사용하여 값(value)을 저장한다.

딕셔너리 안에 키(key)가 있으면 변경이 되고 없으면 추가가 된다.

ex) dictionary [ 키 ] = 값

 

del 키워드를 사용하여 딕셔너리에 포함된 특정 요소를 제거한다.

clear( ) 함수를 사용하여 딕셔너리에 저장된 모든 원소들을 한 번에 삭제할 수 있다.

ex) del dict ['키'], dict.clear( )

 

in, not in 연산자는 어떤 값이 딕셔너리의 key로 있는지 True/False로 반환한다.

 

원소 조회

순서 1. f_cnt에서 키(key)가 '사과'인 값을 조회한다.

순서 2. f_cnt에서 키(key)가 '토마토'인 값을 조회한다.

순서 3. get( ) 함수를 이용하여 키(key)가 '사과'인 값을 조회한다.

순서 4. get( ) 함수를 이용하여 키(key)가 '토마토'인 값을 조회한다.

f_cnt['사과']	
f_cnt['토마토']

f_cnt.get('귤'), f_cnt.get('사과')
print(f_cnt.get('토마토'))

 

[실행결과]

30
없는 key로 조회했기 때문 Error 발생
(20, 150)
None

 

원소 변경/추가

순서 1. 값이 있는 key에 다른 값을 대입한다. (변경)

순서 2. 는 key에 다른 값을 대입한다. (추가)

f_cnt['사과'] = 150 
f_cnt

f_cnt['체리'] = 70
f_cnt

 

[실행결과]

{'사과': 150, '귤': 20, '수박': 10}
{'사과': 150, '귤': 20, '수박': 10, '체리': 70}

 

원소 삭제

순서 1. del 키워드를 사용하여 키(key)가 '체리'인 값을 삭제한다.

순서 2. clear( ) 함수를 사용하여 f_cnt에 저장된 모든 원소들을 한 번에 삭제한다.

del f_cnt['체리']
f_cnt

dict.clear(f_cnt)

 

[실행결과]

{'사과': 150, '귤': 20, '수박': 10}
{}

 

in, not in 연산자

순서 1. f_cnt에 150이라는 key가 있을까..?

순서 2. f_cnt에 '귤'이라는 key가 있을까..?

순서 3. f_cnt에 '사과'이라는 key가 있을까..?

150 in f_cnt
'귤' in f_cnt
'사과' not in f_cnt

 

[실행결과]

False
True
False

 


Dictionary(사전) – 주요 메소드

 

 


반응형

'Back-End > Python' 카테고리의 다른 글

[Python] 자료구조 변환 함수  (2) 2022.09.20
[Python] 자료구조 - Set(집합)  (0) 2022.09.20
[Python] 자료구조 - Tuple(튜플)  (0) 2022.09.19
[Python] 자료구조 - List(리스트)  (0) 2022.09.18
[Python] 파이썬 자료구조  (0) 2022.09.18