파이썬 dict.pop으로 값을 꺼내면서 키 삭제하기

이 카테고리 글 목록

전체글 보기

딕셔너리에서 키를 지우면서 저장된 값도 받아야 한다면 pop()을 쓰세요. stock.pop("배")는 배에 연결된 값을 반환하고 해당 키와 값을 딕셔너리에서 삭제합니다.

stock = {"배": 3, "자두": 2}
taken = stock.pop("배")

print("꺼낸 값", taken)
print("남은 딕셔너리", stock)
꺼낸 값 3
남은 딕셔너리 {'자두': 2}

taken에는 값 3이 들어가고, stock에는 자두 항목만 남았습니다. 값을 읽은 뒤에도 같은 키를 유지하려면 get()으로 조회하세요. 기본값과 None의 차이가 궁금하다면 dict.get의 기본값이 쓰이는 조건을 함께 볼 수 있습니다.

없는 키에 기본값을 주는 경우와 저장된 값이 None인 경우

pop(key, default)의 기본값은 키가 없을 때만 반환됩니다. 키가 있고 값이 None이면 그 값을 반환하면서 키를 삭제합니다.

stock = {"배": None, "자두": 2}

print("있는 키의 값", stock.pop("배", 0))
print("삭제 뒤 딕셔너리", stock)
print("없는 키의 기본값", stock.pop("복숭아", 0))
print("기본값 호출 뒤", stock)
있는 키의 값 None
삭제 뒤 딕셔너리 {'자두': 2}
없는 키의 기본값 0
기본값 호출 뒤 {'자두': 2}

배 항목은 값이 None이어도 존재했으므로 꺼낸 뒤 사라졌습니다. 복숭아는 처음부터 없어서 0을 받았고, 기본값을 돌려받는 호출이 새 항목을 만들지는 않았습니다.

기본값 없이 없는 키를 꺼내면 KeyError

stock = {"자두": 2}

try:
    stock.pop("배")
except KeyError as error:
    print(type(error).__name__)

print("호출 뒤 딕셔너리", stock)
KeyError
호출 뒤 딕셔너리 {'자두': 2}

키 누락이 정상적인 상황이라면 사용할 기본값을 지정할 수 있습니다. 반드시 있어야 할 키라면 이 오류를 통해 입력이나 앞선 삭제 과정을 확인할 수 있습니다.

재고 수량은 가상 입력이며 Windows의 Python 3.14.3에서 실행했습니다. 반환·삭제와 기본값의 조건은 Python의 dict.pop 문서에 정리돼 있습니다.

이 카테고리의 다른 글

전체글 보기

댓글 남기기