04 — LECTURE ·PY-08 ·2026.02.10

08. 튜플과 딕셔너리

튜플의 불변성과 딕셔너리의 키-값 구조를 익힌다

목차
  1. 학습 목표
  2. 1. 튜플(Tuple)이란?
  3. 정의
  4. 리스트 vs 튜플
  5. 실습 8-1. 튜플 생성과 인덱싱
  6. 실습 8-2. 튜플 수정 시도 → TypeError
  7. 실습 8-3. 튜플 병합과 길이
  8. 2. 딕셔너리(Dictionary)란?
  9. 정의
  10. 기본 문법
  11. 주요 특징
  12. 실습 8-4. 딕셔너리 기본 사용법
  13. 3. 딕셔너리 요소 추가·수정·삭제
  14. 문법
  15. 실습 8-5. 추가·수정·삭제
  16. 4. for문에서 딕셔너리 사용
  17. 기본 구조
  18. 실습 8-6. 딕셔너리 순회
  19. 실습 8-7. 스포츠 성적 딕셔너리

스포츠 데이터로 배우는 파이썬 기초

학습 목표

  • 튜플의 개념과 리스트와의 차이점 이해
  • 딕셔너리의 키-값 구조 이해
  • 딕셔너리 요소 추가·수정·삭제
  • for문에서 딕셔너리 순회

1. 튜플(Tuple)이란?

정의

  • 리스트와 사용법이 거의 같음
  • 소괄호 () 사용
  • 한번 생성하면 추가·수정·삭제 불가 (불변, immutable)

리스트 vs 튜플

구분리스트튜플
기호[]()
수정 가능OX
용도변하는 데이터변하지 않는 데이터

실습 8-1. 튜플 생성과 인덱싱

menu = ('coffee', 'milk', 'tea', 'cider')

print(menu)
print(menu[0])      # coffee
print(menu[2])      # tea
print(menu[0:3])    # 앞 3개
('coffee', 'milk', 'tea', 'cider')
coffee
tea
('coffee', 'milk', 'tea')

실습 8-2. 튜플 수정 시도 → TypeError

try:
    menu = ('coffee', 'milk', 'tea', 'cider')
    menu[1] = 'cola'    # 수정 시도
except TypeError as e:
    print('오류 발생:', e)
오류 발생: 'tuple' object does not support item assignment

실습 8-3. 튜플 병합과 길이

tuple1 = ('apple', 'banana', 'cherry')
tuple2 = ('orange', 'melon', 'strawberry')

# 병합 (+)
tuple3 = tuple1 + tuple2
print(tuple3)
print('길이:', len(tuple3))

# for문 순회
for x in tuple1:
    print(x)
('apple', 'banana', 'cherry', 'orange', 'melon', 'strawberry')
길이: 6
apple
banana
cherry

2. 딕셔너리(Dictionary)란?

정의

  • 키(Key)값(Value) 쌍으로 데이터를 저장
  • 중괄호 {} 사용
  • 키로 값을 빠르게 찾을 수 있음 — 사전(Dictionary)과 같은 구조

기본 문법

딕셔너리 = {'키1': 값1, '키2': 값2, ...}
딕셔너리['키1']  → 값1

주요 특징

  • 키는 고유해야 함 (중복 불가)
  • 값은 중복 가능
  • 순서가 있음 (Python 3.7 이상)

실습 8-4. 딕셔너리 기본 사용법

members = {'name': '안지영', 'age': 30, 'email': 'jiyoung@korea.com'}

print(members)
print(members['name'])     # 키로 값 접근
print(members['age'])
print('길이:', len(members))
{'name': '안지영', 'age': 30, 'email': 'jiyoung@korea.com'}
안지영
30
길이: 3

3. 딕셔너리 요소 추가·수정·삭제

문법

작업코드
추가/수정딕셔너리['키'] = 값
삭제del 딕셔너리['키']

실습 8-5. 추가·수정·삭제

scores = {'kor': 95, 'eng': 85, 'math': 90, 'science': 80}
print('원본:', scores)

# 수정
scores['kor'] = 70
print('수정 후 국어:', scores['kor'])

# 추가
scores['music'] = 100
print('추가 후:', scores)

# 삭제
del scores['science']
print('삭제 후:', scores)
원본: {'kor': 95, 'eng': 85, 'math': 90, 'science': 80}
수정 후 국어: 70
추가 후: {'kor': 70, 'eng': 85, 'math': 90, 'science': 80, 'music': 100}
삭제 후: {'kor': 70, 'eng': 85, 'math': 90, 'music': 100}

4. for문에서 딕셔너리 사용

기본 구조

for key in 딕셔너리:
    print(key, 딕셔너리[key])
  • for key in 딕셔너리: → 키를 하나씩 순회
  • 딕셔너리[key] → 해당 키의 값

실습 8-6. 딕셔너리 순회

phones = {
    '갤럭시노트8': 2017,
    '갤럭시S9': 2018,
    '갤럭시노트10': 2019,
    '갤럭시S20': 2020
}

print(phones)
for key in phones:
    print('%s => %s' % (key, phones[key]))

print('항목 수:', len(phones))
{'갤럭시노트8': 2017, '갤럭시S9': 2018, '갤럭시노트10': 2019, '갤럭시S20': 2020}
갤럭시노트8 => 2017
갤럭시S9 => 2018
갤럭시노트10 => 2019
갤럭시S20 => 2020
항목 수: 4

실습 8-7. 스포츠 성적 딕셔너리

# 선수 성적 딕셔너리
player = {
    'name': '손흥민',
    'team': 'Tottenham',
    'goals': 23,
    'assists': 7,
    'matches': 35
}

for key in player:
    print(f'{key}: {player[key]}')

# 공격포인트 계산
attack_points = player['goals'] + player['assists']
print(f"\n공격포인트: {attack_points}")
name: 손흥민
team: Tottenham
goals: 23
assists: 7
matches: 35

공격포인트: 30