Windows · Python 3.12.4. 본문의 첫 예제를 실행하여 표준 출력과 예상 결과가 일치함을 확인했습니다. 연습문제의 모든 입력을 검증한 것은 아닙니다.
이 글의 순서 5개 단락
과일마다 재고를 기록할 때는 이름과 수량을 연결해 두면 원하는 과일의 수량을 찾거나 바꾸기 편합니다. Python의 딕셔너리는 이런 연결을 저장하는 자료형입니다. 이번 예제는 Python 3.12를 기준으로 합니다.
키와 값으로 재고 저장하기
딕셔너리는 중괄호 {} 안에 키: 값 쌍을 쉼표로 구분해 만듭니다. 과일 이름이 키이고 재고 수량이 값이라면 "사과": 3은 사과의 재고가 3개라는 뜻입니다. 리스트에서 위치를 나타내는 인덱스를 사용한 것과 달리, 딕셔너리에서는 키로 연결된 값을 찾습니다.
핵심은 기존 키에 새 값을 대입해 재고를 수정하고, 없는 키는 get의 기본값으로 조회하는 것입니다.
재고를 수정하고 출력하기
다음 예제는 사과와 바나나의 재고를 저장하고 사과 재고를 5개로 바꿉니다. 이어서 없는 포도의 재고를 조회하고 저장된 항목을 모두 출력합니다.
stock = {"사과": 3, "바나나": 2}
stock["사과"] = 5
print(f"사과 재고: {stock['사과']}")
print(f"포도 재고: {stock.get('포도', 0)}")
for fruit, count in stock.items():
print(f"{fruit}: {count}")

입력: 없음. 과일 이름과 수량은 코드에 직접 적혀 있습니다.
예상 출력:
사과 재고: 5
포도 재고: 0
사과: 5
바나나: 2
결과가 나오는 이유
stock["사과"] = 5는 이미 있는 "사과" 키의 값을 3에서 5로 바꿉니다. 따라서 바로 다음 조회에서 5가 출력됩니다. stock.get('포도', 0)은 "포도" 키가 없으므로 두 번째 값인 0을 돌려줍니다. 이 조회는 포도 항목을 딕셔너리에 추가하지 않습니다.
stock.items()는 저장된 키와 값을 한 쌍씩 살펴볼 수 있게 합니다. for fruit, count in stock.items()에서 fruit에는 과일 이름이, count에는 해당 수량이 차례로 들어갑니다. Python 3.12의 딕셔너리는 키를 처음 추가한 순서를 유지하므로 사과 다음에 바나나가 출력됩니다. 기존 사과의 값을 바꿔도 그 순서는 바뀌지 않습니다.
흔한 실수와 경계 조건
- 없는 키를
stock["포도"]처럼 직접 조회하면KeyError가 발생합니다. 기본값으로 대신 처리하려면stock.get("포도", 0)을 사용하세요. 두 번째 인자를 생략하면 없는 키에 대해None이 반환됩니다.None은 값이 없음을 나타내는 특별한 값입니다. get("포도", 0)의 0은 없는 키에 대한 기본값일 뿐, 재고가 실제로 0이라는 증거는 아닙니다. 없는 항목과 수량이 0인 항목을 구분해야 한다면"포도" in stock으로 키가 있는지 확인하세요.- 같은 키에 다시 대입하면 항목이 하나 더 생기는 것이 아니라 기존 값이 바뀝니다. 반면
stock["포도"] = 4처럼 새로운 키에 대입하면 항목이 추가됩니다. - 키 이름은 정확히 일치해야 합니다. 예를 들어
"사과"와"사과 "는 끝에 공백이 있는지에 따라 서로 다른 키입니다. 빈 딕셔너리{}를items()로 순회하면 반복문은 한 번도 실행되지 않습니다.
연습: 물품 수량 기록하기
연필 4개와 지우개 2개를 딕셔너리에 저장하세요. 연필 수량을 6개로 바꾸고, 딕셔너리에 없는 자의 수량을 get의 기본값 0으로 출력하세요. 마지막으로 모든 물품의 이름과 수량을 출력해 보세요.
풀이
supplies = {"연필": 4, "지우개": 2}
supplies["연필"] = 6
print(f"자: {supplies.get('자', 0)}")
for name, quantity in supplies.items():
print(f"{name}: {quantity}")
예상 출력은 다음과 같습니다.
자: 0
연필: 6
지우개: 2
연필의 기존 값은 6으로 바뀝니다. 자는 조회만 했으므로 마지막 순회에 포함되지 않습니다.
참고: Python 3.12 공식 튜토리얼 — 딕셔너리, Python 3.12 공식 문서 — 딕셔너리 메서드
CHECK THE SOURCE
참고한 공식 문서
기능 설명은 위 문서를 참고했으며, 예제의 입력·결과와 한계는 본문에 따로 기록했습니다.