PART 07. 딕셔너리

목차


학습 목표

7.1 딕셔너리의 개요

딕셔너리(dictionary)는 키(key)와 값(value)의 쌍으로 데이터를 저장하는 자료형이다.

본 예제는 딕셔너리를 생성하고 키-값 쌍을 추가하거나 조회하는 기본 사용법을 보여 준다. 딕셔너리는 순서보다 ‘키를 통한 빠른 조회’에 강점이 있으므로, 항목 이름을 키로 삼는 상황에 적합하다.


prices = {"아메리카노": 2500, "라떼": 3000}
print(prices["라떼"])

딕셔너리 생성과 특징

본 예제는 딕셔너리를 생성하고 키-값 쌍을 추가하거나 조회하는 기본 사용법을 보여 준다. 딕셔너리는 순서보다 ‘키를 통한 빠른 조회’에 강점이 있으므로, 항목 이름을 키로 삼는 상황에 적합하다.


prices = {}
prices["아메리카노"] = 2500
prices["라떼"] = 3000

7.2 딕셔너리 다루기

딕셔너리 순회

본 예제는 딕셔너리에서 키로 값을 조회하는 방법을 제시한다. 키 존재 여부를 in 연산자로 확인한 뒤 접근하면, 존재하지 않는 키로 인한 오류를 예방할 수 있다.


for key in prices:
    print(key, prices[key])

items, keys, values

본 예제는 해당 단원에서 다루는 핵심 개념을 코드로 확인하기 위한 예시이다. 변수의 의미를 파악한 뒤, 입력·처리·출력의 흐름을 따라 실행 결과를 해석하는 것이 중요하다.


for k, v in prices.items():
    print(k, v)

항목 삭제

본 예제는 해당 단원에서 다루는 핵심 개념을 코드로 확인하기 위한 예시이다. 변수의 의미를 파악한 뒤, 입력·처리·출력의 흐름을 따라 실행 결과를 해석하는 것이 중요하다.


prices.pop("라떼")
del prices["아메리카노"]
prices.clear()

LAB: 국가 수도 사전

본 예제는 딕셔너리에서 키로 값을 조회하는 방법을 제시한다. 키 존재 여부를 in 연산자로 확인한 뒤 접근하면, 존재하지 않는 키로 인한 오류를 예방할 수 있다.


capitals = {"한국": "서울", "일본": "도쿄"}
nation = input("국가 입력: ")
if nation in capitals:
    print(capitals[nation])

LAB: 주문 금액 계산기

본 예제는 while 문으로 조건 기반 반복을 수행하며, 특정 조건을 만족할 때 break 문으로 반복을 즉시 종료하는 흐름을 보여 준다. 입력값이나 상태 변수를 점검하여 반복을 계속할지 여부를 결정한다.


menu = {"아메리카노": 2500, "라떼": 3000}
total = 0
while True:
    drink = input("음료(종료): ")
    if drink == "종료":
        break
    qty = int(input("수량: "))
    total += menu[drink] * qty
print("총 금액:", total)

7.3 [플러스 예제] 프로그래밍 언어 선호도 조사

본 예제는 while 문으로 조건 기반 반복을 수행하며, 특정 조건을 만족할 때 break 문으로 반복을 즉시 종료하는 흐름을 보여 준다. 입력값이나 상태 변수를 점검하여 반복을 계속할지 여부를 결정한다.


langs = {"python": 0, "java": 0, "c": 0}

while True:
    s = input("언어 입력(종료): ").lower()
    if s == "종료":
        break
    if s in langs:
        langs[s] += 1

7.4 [플러스 예제] 영어 단어 퀴즈

본 예제는 딕셔너리의 항목을 (키, 값) 쌍으로 순회하기 위해 items()를 사용한다. 각 반복에서 키와 값을 동시에 받아 처리함으로써, 저장된 데이터를 효율적으로 확인할 수 있다.


words = {"고양이": "cat", "강아지": "dog"}

for kor, eng in words.items():
    ans = input(f"{kor}의 영어는? ")
    if ans == eng:
        print("정답")
    else:
        print("오답")