[ Python 기초 ] 딕셔너리 (Dictionary)

1. 딕셔너리(Dictionary)

1-1. 개요

딕셔너리는 사전을 의미하는데, 사전은 '단어'와 그 단어를 설명하는 '뜻'으로 구성되어 있다.
유사한 경험으로 사용되는 파이썬의 딕셔너리는 키(Key)값(Value)의 쌍으로 이루어져 있다.

# ex1. 딕셔너리 예시
scores = {'kor': 85, 'eng': 90, 'math': 100}
members = {'name': '홍길동', 'age': 25, 'phone': '010-3787-3146'

위의 예시와 같이 딕셔너리 scoresmembers는 요소 전체를 중괄호({})로 감싸고, 각 요소는 콤마(,)로 구분 지어져 있다.

📢 정리

  • 딕셔너리의 키 : 'kor', 'eng', 'math', 'name', 'age', 'phone'
  • 딕셔너리의 값 : 85, 90, 100, '홍길동', 25, 010-3787-3146

1-2. 딕셔너리의 기본 구조

딕셔너리 생성에 사용되는 서식은 다음과 같다.

딕셔너리명 = {키: 값, 키: 값, ...}

으로 구성된 전체 요소들을 중괄호({})로 감싼 다음 딕셔너리명에 저장함으로써 딕셔너리가 생성된다.


# ex2. 딕셔너리의 기본 구조
members = {'name': '안지영', 'age': 30, 'email': '[email protected]'} # 딕셔너리 생성

print(members)          # 딕셔너리 추출
print(members['name'])  # 키 'name'에 대응되는 값 출력
print(members['age'])   # 키 'age'에 대응되는 값 출력

print('길이' : %d' % len(members))
👉 실행 결과
{'name': '안지영', 'age': 30, 'email': '[email protected]'}
안지영
30
길이 : 3

✍ 문제 풀이

  • 딕셔너리를 추출할 때는 키와 값의 쌍이 함께 출력된다.
  • 딕셔너리는 키와 값이 한 쌍이므로 길이가 3이 된다.

2. 딕셔너리 요소 다루기

2-1. 요소 추가/수정/삭제

딕셔너리에 요소를 수정/추가/삭제하는 서식은 다음과 같다.

1. 수정/추가
딕셔너리명[키] = 값

2. 삭제
del 딕셔너리명[키]
  1. 딕셔너리명에 키가 존재하면 해당 키의 값을 수정한다.
    만약 딕셔너리명에 키가 존재하지 않으면, 새로운 요소로서 키와 값이 추가된다.

  2. del명령은 딕셔너리명에서 키를 가진 요소를 찾아 해당 요소의 키와 값을 삭제한다.


# ex3. 딕셔너리 요소 다루기
name = '안진영'
scores = {'kor': 95, 'eng': 85, 'math': 90, 'science': 80}  # 딕셔너리 생성
print(scores)

scores['kor'] = 70       # 국어 점수 95점 -> 70점으로 수정
print(scores['kor'])     # 국어 점수 출력

scores(['music']) = 100  # 기존에 없던 음악 점수 딕셔너리에 요소 추가
scores(scores)

del scores['science']    # 'science' 키와 값을 삭제
print(scores)

print('이름 : %s' % name)
print('국어 : %d' % scores['kor'])
print('영어 : %d' % scores['eng'])
print('수학 : %d' % scores['math'])
👉 실행 결과
{'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}
이름 : 안진영
국어 : 70
영어 : 85
수학 : 90

✍ 문제 풀이

  • 국어 점수가 95점에서 70점으로 잘 수정되었음을 확인할 수 있다.
  • 'music' 요소가 추가되었고, 'science'의 키와 값이 삭제되었음을 확인할 수 있다.

2-2. for문에서의 활용

for문에서 사용되는 딕셔너리의 형식은 다음과 같다.

for 변수명 in 딕셔너리명:
    ...
    딕셔너리명[변수명]
    ...

여기서 for 루프에서 사용되는 변수명은 딕셔너리명의 가 되고, 딕셔너리명[변수명]은 해당 키에 대응되는 이 된다.


# ex4. for문에서 딕셔너리 사용하기
phones = {'갤럭시 노트8': 2017, '갤럭시 S9': 2018, '갤럭시 노트 10': 2019, '갤럭시 S20': 2020}
print(phones)

for key in phones:  # 딕셔너리의 key값만 들어감
    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

✍ 문제 풀이

  • 휴대폰 모델을 키로 하고, 출시년도를 값으로 하는 딕셔너리 phones를 생성한다.
  • for 루프는 딕셔너리의 요소의 개수만큼 5행의 문장을 반복한다.
  • for문에서 key는 phones의 각각의 키에 해당되는 '갤럭시 노트8', '갤럭시 S9', '갤럭시 노트10', '갤럭시 S20'을 가진다.

좋은 웹페이지 즐겨찾기