1. 기본 딕셔너리 생성
딕셔너리는 키(Key)와 값(Value)을 한 쌍으로 저장합니다.
student = {
"이름": "민수",
"나이": 17,
"학년": 2
}
print(student)
출력 결과
{'이름': '민수', '나이': 17, '학년': 2}
"이름", "나이", "학년"은 키이고, "민수", 17, 2는 값입니다.
2. 빈 딕셔너리 생성
처음에는 비어 있는 딕셔너리를 만들고, 나중에 데이터를 추가할 수 있습니다.
data = {}
print(data)
{}
data = dict()
print(data)
{}
3. dict() 함수로 생성
dict() 함수를 사용하면 딕셔너리를 만들 수 있습니다.
person = dict(이름="지아", 나이=18, 학교="과학고")
print(person)
{'이름': '지아', '나이': 18, '학교': '과학고'}
dict() 함수에서 키 이름은 따옴표 없이 쓸 수 있지만, 일반적인 딕셔너리 작성법에서는 키를 따옴표로 감싸는 경우가 많습니다.
4. 리스트로 딕셔너리 생성
키와 값이 쌍으로 들어 있는 리스트를 dict()에 넣으면 딕셔너리가 됩니다.
info = [
["이름", "하준"],
["나이", 16],
["반", 3]
]
student = dict(info)
print(student)
{'이름': '하준', '나이': 16, '반': 3}
5. zip() 함수로 딕셔너리 생성
zip()은 두 리스트의 값을 순서대로 묶어 줍니다.
keys = ["이름", "점수", "등급"]
values = ["민수", 95, "A"]
result = dict(zip(keys, values))
print(result)
{'이름': '민수', '점수': 95, '등급': 'A'}
6. for문으로 딕셔너리 생성
반복문을 이용하여 딕셔너리에 값을 하나씩 추가할 수 있습니다.
numbers = {}
for i in range(1, 6):
numbers[i] = i * i
print(numbers)
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
7. 딕셔너리 컴프리헨션
반복문을 한 줄로 줄여서 딕셔너리를 만들 수 있습니다.
square = {x: x * x for x in range(1, 6)}
print(square)
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
8. 중첩 딕셔너리 생성
딕셔너리 안에 또 다른 딕셔너리를 넣을 수 있습니다.
students = {
"학생1": {
"이름": "민수",
"점수": 90
},
"학생2": {
"이름": "지아",
"점수": 95
}
}
print(students)
{'학생1': {'이름': '민수', '점수': 90}, '학생2': {'이름': '지아', '점수': 95}}
9. 딕셔너리 핵심 정리
| 항목 | 설명 |
|---|---|
| 구조 | 키와 값의 쌍으로 저장 |
| 작성 형식 | {키: 값, 키: 값} |
| 키 중복 | 같은 키는 하나만 존재 |
| 값 수정 | 가능 |
| 활용 예 | 학생 정보, 성적표, 상품 정보, 설정값 저장 |
실생활 예시
학생정보 = {
"학번": "1101",
"이름": "인수",
"학교": "과학고"
}
10. 간단 퀴즈
문제 1. 딕셔너리는 키와 값으로 이루어진 자료형이다. O / X
정답: O
딕셔너리는 Key:Value 구조입니다.
딕셔너리는 Key:Value 구조입니다.
문제 2. 다음 코드의 출력 결과는?
data = {"국어": 90, "수학": 100}
print(data["수학"])
정답: 100
"수학"이라는 키에 저장된 값은 100입니다.
"수학"이라는 키에 저장된 값은 100입니다.
문제 3. 빈 딕셔너리를 만드는 올바른 코드는?
① data = [] ② data = {} ③ data = () ④ data = ""
정답: ② data = {}
{}는 빈 딕셔너리를 의미합니다.
{}는 빈 딕셔너리를 의미합니다.