메서드/키워드 | 설명 | 인자 | 반환값 | 특징 | 예시 |
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 (키가 없었으므로 기본값 반환)
'AI Journey > 혼자 공부하는 파이썬' 카테고리의 다른 글
[파이썬] 다형성(Polymorphism) Part 1. 개념 이해하기 (feat. 우주청소로봇) (0) | 2025.03.07 |
---|---|
[파이썬] 슬라이싱 기본 규칙 - 문자열, 튜플, 리스트 (0) | 2025.03.05 |
[파이썬] 리스트 - 리스트 내용을 삭제하는 메서드 .remove(), .pop(), clear() 비교 (0) | 2025.02.21 |
[파이썬] 정규 표현식(Regex) 2. 그룹화(Grouping) (예제: 전화번호 찾기) (0) | 2025.02.20 |
[파이썬] 정규 표현식(Regex) 1. 컴파일, Match 객체 (예제: 전화번호 찾기) (0) | 2025.02.20 |