본문 바로가기
코딩/파이썬

파이썬 [Python] - 딕셔너리(Dictionary)의 get 사용법

by 누누즈 2023. 1. 11.
반응형

파이썬(Python)에서 딕셔너리(Dictionary)는 순서가 정해져 있지 않다고 말씀드렸습니다. 그래서 키(key) 값을 이용하여 값(Value)을 읽어오는 방법을 사용했습니다. 이번엔 키값을 이용하여 Value를 가져오는 또 다른 방법인 get() 메소드에 대해서 설명드리겠습니다.

 


[목차]

  1. get 메소드란?
  2. get 메소드 사용방법

 

1. get 메소드란?

get() 메소드는 딕셔너리 객체에서 키(Key)를 이용하여 값(Value)를 가져올 수 있도록 도와주는 메소드입니다.  사용방법은 다음과 같습니다.

 

 

d.get(key, default=None)

 

 

d는 딕셔너리(Dictionary)를 뜻하며, get 메소드는 key값을 이용하여 value를 가져오는 메소드 입니다. 기본적으로 두번째 인자는 default None 이기에 생략 하셔도 무방합니다. 

 

 

다음은 사용예시입니다. 

 

 

d = {
  "a" : 10,
  "b" : 30,
  "c" : 20
}

print(d["a"]) # 딕셔너리(Dictionary) d에서 key값인 "a"를 이용하여 10 출력
print(d["b"]) # 딕셔너리(Dictionary) d에서 key값인 "b"를 이용하여 30 출력
print(d.get("a")) # 딕셔너리(Dictionary) d의 get함수가 key값인 "a"를 이용하여 10 출력
print(d.get("c")) # 딕셔너리(Dictionary) d의 get함수가 key값인 "c"를 이용하여 20 출력

# 기본적으로 객체에 key 값을 이용해서 대괄호 안에 인자로 직접 넣는 기존 방식과 get을 이용해서 value를
# 가져오는 방식의 출력값은 동일 합니다.

 

 

2. get 메소드 사용방법

위 예시에서는 key값이 무조건 존재하는 경우에 대해서만 말씀드렸습니다. 하지만 key가 없는 경우는 어떻게 될까요? 기존 대괄호[]에 없는 키값을 넣으면 무조건 None을 리턴하게 됩니다.

 

 

d = {
  "a" : 10,
  "b" : 30,
  "c" : 20
}

print(d["e"]) # 딕셔너리(Dictionary) 내 존재하지 않는 키(Key)값인 e를 이용하려 하니 KeyError: 'e' 출력
print(d.get("a")) # 딕셔너리(Dictionary) d의 get함수를 이용하여 키(Key)값인 a를 이용하여 10 출력
print(d.get("a",0)) # 10 출력, "a" 가 존재하기에 "a"의 value 인 10을 출력 한다.
print(d.get("e")) # None 출력, (에러가 나오지 않으며 None 출력)
print(d.get("e",0)) # 0 출력, 만약에 key값이 존재하지 않는다면 다른 결과값을 리턴하게 할 수 있다.

 

 

즉 get을 쓸 때의 장점으로는 첫 번째로는 잘못된 키값 혹은 없는 키값을 바로 넣어 value를 확인하려 할 때 대괄호 안에 키(Key)로 넣게 된다면 에러가 발생하고 프로그램에 문제를 야기할 수 있지만 get() 함수를 사용하게 된다면 기본적으로 에러가 나지 않고 None 처리로 자연스럽게 넘어갈 수 있습니다. 또한 None 대신 0, -1 등 원하는 출력값을 넣어주어 문제가 난경우를 자연스럽게 해결할 수 있습니다. 

 

 


[함께 읽으면 좋은 글]

이전글 : 2023.01.10 - [코딩/파이썬] - 파이썬 [Python] - 딕셔너리, Dictionary, 사용법, 복사, 수정, for문, in, 삭제, pprint

 

파이썬 [Python] - 딕셔너리, Dictionary, 사용법, 복사, 수정, for문, in, 삭제, pprint

제가 파이썬 쓸 때 가장 애용하는 데이터 타입은 딕셔너리(Dictionary)입니다. 사용법을 익혀두면 두고두고 써먹을 수 있는 좋은 데이터 타입입니다. 딕셔너리(Dictionary)의 정의, 사용법, 복사, 수정,

nxuafxdgg.tistory.com

 

 


 

 

 

반응형

댓글