본문 바로가기
AI Journey/혼자 공부하는 파이썬

[파이썬] 딕셔너리 - 딕셔너리 내용을 삭제하는 메서드

by 보눔비스타 2025. 2. 21.
메서드/키워드 설명 인자 반환값 특징 예시
del dict[key] 특정 키-값 쌍 삭제 없음 키가 없으면 KeyError 발생 del my_dict['a']
dict.pop(key, default) 특정 키를 삭제하고 값을 반환 키(기본값) 삭제된 값 키가 없으면 default 반환, 기본값 없으면 KeyError 발생 my_dict.pop('a')
dict.popitem() 마지막 키-값 쌍을 삭제하고 반환 없음 (키, 값) 튜플 파이썬 3.7+부터는 LIFO 순서로 삭제 my_dict.popitem()
dict.clear() 모든 요소 삭제 없음 없음 딕셔너리를 완전히 비움 my_dict.clear()

** LIFO(Last In, First Out) : 마지막에 들어온 것이 먼저 나가는 원칙. 즉, 가장 나중에 추가된 요소가 가장 먼저 제거됨.

예제 코드

my_dict = {'a': 1, 'b': 2, 'c': 3}

# 1. del 키워드 사용
del my_dict['a']  # {'b': 2, 'c': 3}
# del my_dict['x']  # KeyError 발생 (키가 없을 경우)

# 2. pop() 메서드 사용
value = my_dict.pop('b')  # value = 2, {'c': 3}
value = my_dict.pop('x', 'Not Found')  # 'Not Found' 반환 (예외 발생 방지)

# 3. popitem() 메서드 사용
key_value = my_dict.popitem()  # ('c', 3) 반환, 빈 딕셔너리 {}

# 4. clear() 메서드 사용
my_dict.clear()  # 빈 딕셔너리 {}

 

my_dict.pop('x', 'Not Found')에서 **'Not Found'**를 넣는 이유:

키('x')가 존재하지 않을 경우 발생하는 KeyError를 방지하고, 대신 기본값을 반환하기 위해서.

 

언제 default 값을 사용할까?

  • 예외 없이 프로그램이 계속 실행되어야 할 때
  • 키가 존재하는 경우엔 값을 얻고, 없으면 기본값을 받고 싶을 때
  • 딕셔너리에서 특정 키를 찾으면서 삭제하고 싶지만, 키가 없을 수도 있을 때

예시: pop()을 사용해서 안전하게 딕셔너리 값을 추출하기

settings = {'theme': 'dark', 'volume': 80}

# 키가 존재하면 값을 삭제하고, 없으면 기본값 설정
theme = settings.pop('theme', 'light')  
font_size = settings.pop('font_size', 14)  

print(theme)      # 'dark' (키가 있었으므로 삭제 후 반환)
print(font_size)  # 14 (키가 없었으므로 기본값 반환)