이번 포스팅에서는 파이썬의 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 |