본문 바로가기
Python

파이썬의 딕셔너리(Dictionary)는 데이터 자료형

by 헬로제이콥 2025. 12. 22.

1. keys(): 모든 키(key) 목록 확인

  • 예제 A: 회원 ID만 추출하기
  • Python
     
    members = {"id1": "철수", "id2": "영희", "id3": "민수"}
    print(members.keys())
    # 출력 결과: dict_keys(['id1', 'id2', 'id3'])
    
  • 예제 B: 재고 목록의 품목 확인하기
  • Python
     
    inventory = {"사과": 10, "바나나": 5}
    for item in inventory.keys():
        print(f"현재 품목: {item}")
    # 출력 결과:
    # 현재 품목: 사과
    # 현재 품목: 바나나
    

2. values(): 모든 값(value) 목록 확인

  • 예제 A: 점수 평균 계산하기
  • Python
     
    scores = {"국어": 80, "영어": 90, "수학": 100}
    vals = scores.values()
    avg = sum(vals) / len(vals)
    print(f"평균 점수: {avg}")
    # 출력 결과: 평균 점수: 90.0
    
  • 예제 B: 전체 재고 합계 구하기
  • Python
     
    stock = {"A": 10, "B": 20, "C": 30}
    print(list(stock.values()))
    # 출력 결과: [10, 20, 30]
    

3. items(): (키, 값) 쌍으로 가져오기

  • 예제 A: 메뉴판 출력하기
  • Python
     
    menu = {"커피": 3000, "주스": 4000}
    for name, price in menu.items():
        print(f"{name}: {price}원")
    # 출력 결과:
    # 커피: 3000원
    # 주스: 4000원
    
  • 예제 B: 딕셔너리를 다른 리스트 형식으로 변환
  • Python
     
    data = {"name": "Alice", "age": 25}
    print(list(data.items()))
    # 출력 결과: [('name', 'Alice'), ('age', 25)]
    

4. get(): 키를 이용해 안전하게 값 가져오기

  • 예제 A: 존재하지 않는 데이터 조회
  • Python
     
    user = {"name": "제이미"}
    # 대괄호[]를 쓰면 에러가 나지만, get()은 None을 반환함
    print(user.get("email"))
    # 출력 결과: None
    
  • 예제 B: 데이터가 없을 때 기본값(Default) 지정
  • Python
     
    settings = {"theme": "Dark"}
    # 'font_size'가 없으면 10을 가져오라고 설정
    font_size = settings.get("font_size", 10)
    print(f"폰트: {font_size}")
    # 출력 결과: 폰트: 10



🥤 실습 과제: 나만의 미니 자판기 만들기

과제 설명: 딕셔너리를 활용하여 음료수 이름과 가격을 저장하고, 사용자가 이름을 입력하면 가격을 알려주는 프로그램을 작성하세요.

📝 문제 조건

  1. 메뉴 구성: 딕셔너리 변수 menu를 만들고, 최소 3개 이상의 음료와 가격을 넣으세요.
  2. 전체 출력: items() 메서드를 사용하여 현재 판매 중인 모든 메뉴와 가격을 화면에 출력하세요.
  3. 품목 확인: keys() 메서드를 사용하여 "현재 구매 가능한 품목: [사과, 배...]"와 같은 안내 메시지를 출력하세요.
  4. 가격 조회: 사용자에게 사고 싶은 메뉴 이름을 입력받으세요.
  5. 안전한 검색: get() 메서드를 사용하여 사용자가 입력한 메뉴가 있으면 가격을 출력하고, 없으면 "준비되지 않은 상품입니다"라고 출력하세요.

💡 단계별 힌트 (도움말)

  • 힌트 1 (출력하기): for 이름, 가격 in menu.items(): 문법을 사용하면 딕셔너리의 내용을 예쁘게 한 줄씩 출력할 수 있어요.
  • 힌트 2 (목록만 보기): menu.keys()는 그대로 출력하면 보기 힘들 수 있으니, list(menu.keys()) 처럼 리스트로 변환하면 깔끔하게 보여요.
  • 힌트 3 (찾기): menu.get(입력값, "없음")을 사용해 보세요. 만약 입력한 값이 딕셔너리에 없으면 두 번째 인자인 "없음"이 반환됩니다.
  • 힌트 4 (입력받기): 사용자의 입력은 input("메뉴 입력: ") 함수를 사용하세요.