python

[Python] 딕셔너리, Dictionary에서 key를 통해 value를 가져오는 방법

seokhyun2 2020. 8. 18. 17:34

파이썬의 딕셔너리(dictionary)는 key와 value를 쌍으로 가지는 자료형입니다.

 

key를 활용하여 value를 가져올 수 있는 방법이 있는데 그 방법들을 한번 소개해보려 합니다.

 

1. key를 활용하여 dict[key]로 접근

가장 쉽게 접하는 방식입니다. key를 통해 직접 접근하는 방식입니다.

이 방식의 단점은 존재하지 않는 key에 대해서는 KeyError 에러를 발생시킨다는 것입니다.

예를 들면 이런 식입니다.

 

2. get 함수 활용

get(key, default=None) 함수는 위와 같은 경우의 단점을 보완합니다.

get 함수를 활용하면 key가 존재하지 않는 경우에 대해서 에러를 발생시키지 않고, None 혹은 지정한 default 값을 반환합니다.

아래의 이미지와 같이 활용할 수 있습니다.

 

3. setdefault 함수 활용

setdefault(key, default=None) 함수는 key가 존재하면 해당 value를 반환하고, get() 함수와는 달리 key에 대하여 지정한 default 값을 value로 갱신한 후에 해당 값을 반환합니다.

print를 하면서 get 함수와 setdefault 함수를 비교해보면 아래와 같습니다.

a.get(4, -1)을 호출하면 -1을 반환하지만 a는 변하지 않았고, a.setdefault(4, -1)을 호출하면 a가 갱신되어 있습니다.

 

key가 존재하지 않을 때, 딕셔너리를 업데이트 하도록 구현하면 key가 존재하는 지 확인하기 위해서 한번, 딕셔너리를 업데이트하기 위해서 한번 총 2번을 검색해야 합니다.

setdefault() 함수를 활용하면 한번만 검색하기 때문에 더 효율적으로 코드를 동작시킬 수 있습니다.

'python' 카테고리의 다른 글

[PYTHON] gmail로 메일 보내기  (0) 2021.08.06
[Python] numpy와 랜덤함수  (0) 2021.04.18
[Python] join 함수, filter 함수  (0) 2020.08.10
[Python] python 예외처리 try, except, else, finally  (2) 2020.06.20
[Python] dict 정렬하기  (0) 2020.05.27