<개인공부>/[Python]

[Python] 파이썬 딕셔너리에서 get() vs [] 차이점

BlockDMask 2025. 3. 19. 08:41
반응형

 안녕하세요. BlockDMask 입니다.

오늘은 파이썬 딕셔너리에서 get() 메서드와 [](대괄호)를 이용한 직접 접근 방식의 차이점에 대해 알아보겠습니다.

딕셔너리는 키-값 쌍을 저장하는 자료구조로, 데이터를 효율적으로 관리하는 데 유용합니다. 하지만 키를 조회할 때 get()과 []를 어떻게 사용할지 고민될 수 있습니다. 각각의 방식이 어떤 차이를 가지며, 언제 어떤 방식을 사용하면 좋은지 살펴보겠습니다.

 


1. 딕셔너리에서 get()과 []의 기본 차이점

딕셔너리에서 값을 조회하는 대표적인 두 가지 방법은 get() 메서드를 사용하는 것과 [](대괄호)로 직접 접근하는 것입니다.

data = {"name": "Alice", "age": 25}

[] (대괄호)로 직접 접근

print(data["name"])  # 출력: Alice
print(data["age"])   # 출력: 25

.get() 메서드로 접근

print(data.get("name"))  # 출력: Alice
print(data.get("age"))   # 출력: 25

위 두 방식은 딕셔너리에 존재하는 키를 조회할 때는 동일한 결과를 반환합니다.

 


2. 존재하지 않는 키를 조회할 때의 차이

가장 큰 차이점은 존재하지 않는 키를 조회할 때 발생하는 동작입니다.

[] 방식 (KeyError 발생)

print(data["gender"])  # KeyError: 'gender'
  • data 딕셔너리에 "gender" 키가 존재하지 않으면 KeyError가 발생합니다.

.get() 방식 (None 반환)

print(data.get("gender"))  # 출력: None
  • get()을 사용하면 키가 없을 경우 기본값으로 None을 반환합니다.
  • 오류가 발생하지 않으므로 프로그램이 중단되지 않습니다.

 


3. .get()의 기본값 설정

get() 메서드는 키가 없을 때 반환할 기본값을 설정할 수 있습니다.

print(data.get("gender", "Unknown"))  # 출력: Unknown
  • 기본값을 설정하면 키가 없을 때에도 안전하게 대체값을 제공할 수 있습니다.

 


4. 언제 get()과 []를 사용해야 할까?

사용 방식 장점 단점

data[key] 키가 반드시 존재할 때 사용 키가 없으면 KeyError 발생
data.get(key) 키가 없을 경우에도 안전 기본값이 필요할 수도 있음

✅ [] 사용 추천 상황

  • 키가 반드시 존재한다고 확신할 때 (KeyError 발생 가능성이 없을 때)
  • 필수 데이터라서 값이 없으면 프로그램이 중단되는 것이 나을 때

✅ .get() 사용 추천 상황

  • 키가 없을 수도 있는 경우 (KeyError를 방지해야 할 때)
  • 기본값을 설정해서 안전한 처리가 필요한 경우

 


5. 실전 활용 예제

예제 1: 사용자 입력값 처리

user_data = {"username": "blockdmask", "email": "test@example.com"}

def get_user_info(key):
    return user_data.get(key, "정보 없음")

print(get_user_info("username"))  # 출력: blockdmask
print(get_user_info("phone"))     # 출력: 정보 없음
  • get()을 사용하여 존재하지 않는 키에 대한 기본값을 제공할 수 있습니다.

예제 2: 데이터베이스 조회 시 안전한 처리

db_result = {"id": 1, "name": "Alice"}

user_age = db_result.get("age", "나이 정보 없음")
print(user_age)  # 출력: 나이 정보 없음
  • 데이터베이스 조회 결과에서 특정 값이 없는 경우 get()을 사용하면 오류 없이 기본값을 설정할 수 있습니다.

 


6. 결론

✅ []는 키가 반드시 존재할 때 사용하고, 키가 없으면 KeyError가 발생합니다.
✅ .get()은 키가 없어도 오류 없이 None 또는 지정한 기본값을 반환합니다.
✅ 기본값이 필요하거나 오류 없이 코드를 실행하고 싶다면 .get()을 활용하는 것이 좋습니다.

이제 여러분도 상황에 맞게 get()과 []를 적절히 사용하여 효율적인 파이썬 딕셔너리 코드를 작성해 보세요! 😊


이상, 파이썬 딕셔너리에서 get() vs [] 차이점에 대해서 적어보았습니다.
오늘도 읽어주셔서 감사합니다!

반응형