키-값 쌍이란?
Python 딕셔너리에서 키와 값은 키-값 쌍을 형성하는 두 가지 주요 구성 요소이다.
키(Key)
- 키는 딕셔너리에 저장된 해당 값을 참조하는 데 사용되는 고유 식별자이다.
- 키는 일반적으로 문자열이나 숫자이지만 튜플(불변 요소만 포함)과 같은 다른 불변 데이터 유형일 수도 있다.
- 딕셔너리의 각 키는 고유해야 한다. 기존 키에 새 값을 할당하면 이전 값이 대체된다.
값(Value)
- 값은 딕셔너리의 해당 키와 관련된 데이터이다.
- 값은 문자열, 숫자, 목록, 튜플 또는 기타 딕셔너리과 같은 모든 데이터 유형이 될 수 있습니다.
- 값은 딕셔너리에 중복될 수 있습니다. 여러 키가 동일한 값을 가질 수 있습니다.
다음은 키와 값이 있는 Python 딕셔너리의 예 입니다.
person = {
"name": "Alice",
"age": 30,
"city": "New York",
"job" : "Data Engineer"
}
이 예제에서 키는 "name", "age", "city", "job" 이고 값은 "Alice", 30, "New York" "Data Engineer" 이다.
딕셔너리(Dictionary)
Python 딕셔너리는 각 키가 고유해야 하는 키-값 쌍의 변경 가능하고 정렬되지 않은 모음이다. 딕셔너리는 다른 프로그래밍 언어에서 연관배열, 해시 맵 또는 해시 테이블이라고도 한다. 이들은 Python에서 해시 테이블로 구현되어 키를 기반으로 요소에 대한 빠른 액세스, 삽입 및 삭제를 제공한다.
Python 딕셔너리를 선언하려면 중괄호{}를 사용하고 콜론을 사용하여 키-값 쌍을 구분해야 한다. 특정 키와 관련된 값에 엑세스하려면 대괄호 []를 사용할 수 있다. 예를들면 다음과 같다.
# Declare a 딕셔너리
book = {
"title": "The Catcher in the Rye",
"author": "J.D. Salinger",
"year" : 1951,
"genre": "Fiction"
}
# Accessing a value by key
print(book["title"]) # Output: The Catcher in the Rye
이 예에서 book 딕셔너리에는 "title", "author", "year" 및 "genre"라는 4개의 키-값 쌍이 있다. 키와 관련된 값에 엑세스하려면 print() 명령문에 표시된 대로 대괄호 []와 키를 사용해야 한다.
딕셔너리에 대한 몇 가지 일반적인 작업은 다음과 같다.
1. 딕셔너리 생성
# 딕셔너리 생성
person = {
"name": "John",
"age": 30,
"city": "New York"
}
# 키를 이용한 값 접근
print(person["name"]) # Output: John
2. 요소 추가 또는 업데이트
person["country"] = "USA" # 새로운 키-값 쌍 추가
person["age"] = 31 #"age" 키에 연결된 값을 업데이트
3. 키-값 쌍 제거
del person["age"] #"age"키에 연결된 키-값 쌍 삭제
4. 딕셔너리에 키가 존재하는지 확인
if "name" in person:
print("딕셔너리에 'name' 키가 존재한다.")
5. 딕셔너리 반복
# 키를 이용한 반복(iterate)
for key in person:
print(key)
#값에 대한 반복(iterate)
for value in person.values():
print(value)
# 키-값 쌍에 대한 반복(iterate)
for key, value in person.items():
print(f"{key}: {value}")
6. 딕셔너리 이해
Comprehension을 나열하는 구문과 유사하지만 중괄호 {}를 사용하는 딕셔너리 이해를 사용하여 딕셔너리를 만들수 있다.
squares = {x: x**2 for x in range(1,6)}
print(squares) # Output:{1: 1,2: 4,3:9, 4:16, 5:25}
딕셔너리는 Python의 강력하고 다양한 데이터 구조로, 키를 기반으로 데이터를 구성하고 엑세스하는 효율적인 방법을 제공한다.
7. 딕셔너리와 함께 get() 함수를 사용하는 예
# 딕셔너리 정의
student_grades ={
"John": 85,
"Sarah": 90,
"Anna": 78,
"Tom": 92
}
# get()함수를 사용하여 키로 값을 가져온다.
johns_grade = student_grades.get("John")
print("John's grade", johns_grade) # 출력: John's grade: 85
# get() 함수를 사용하여 존재하지 않는 키의 경우 기본값을 설정한다.
non_existent_key = "Michael"
michaels_grade = student_grades.get("Michael", "Not found")
print("Michael's grade", michaels_grade) #출력: Michael's grade: Not found
이 예제에서 학생 이름을 키로, 각 성적을 값으로 포함하는 'student_grades'라는 딕셔너리를 정의한다. 그런 다음 get() 함수를 사용하여 "John"과 "Michael"의 등급에 엑세스한다. "Michael"이 딕셔너리에 없기 때문에 get() 함수는 기본값" 찾을수 없음"을 반환한다.
자주 발생하는 실수 유형
다음은 Python 딕셔너리 코드를 작성할 때 발생하는 몇 가지 일반적인 실수와 이를 수정하는 방법이다.
1. 변경 가능한 데이터 유형을 키로 사용
문제 : 목록과 같은 변경 가능한 데이터 유형을 딕셔너리의 키로 사용하면 TypeError가 발생한다.
해결방법: 문자열, 숫자 또는 튜플(불변 요소 포함)과 같은 불변 데이터 유형을 키로 사용한다.
# Incorrect
my_dict = {['a','b']:1}
# Correct
my_dict = {('a','b'):1}
2. 요소 엑세스에 잘못된 구문 사용
문제: dict[key] 대신 dict.key와 같이 잘못된 구문을 사용하여 딕셔너리의 요소에 엑세스 하려고 한다.
해결방법: 올바른 구문 dict[key]를 사용하여 딕셔너리의 요소에 엑세스 해야 한다.
# Incorrect
value = my_dict.key
# Correct
value = my_dict['key']
3. 존재하지 않는 키에 액세스
문제: 딕셔너리에 없는 키에 엑세스하려고 하면 KeyError가 발생한다.
해결방법: 키를 찾을수 없는 경우 기본값을 반환하는 get() 메서드를 사용하거나 in과 함께 조건문을 사용하여 키의존재를 확인한다.
# Incorrect
value = my_dict['non_existent_key']
# Correct
value = my_dict.get('non_existent_key','default_value')
# or
if 'non_existent_key' in my_dict:
value = my_dict['non_existent_key']
else:
value = 'default_value'
4. 잘못된 요소 추가 또는 업데이트
문제: dict[key] = value 대신 dict.key = value와 같이 잘못된 구문을 사용하여 딕셔너리에 요소를 추가하거나 업데이트하려고한다.
해결 방법: 올바른 구문인 dict[key] = value를 사용하여 딕셔너리에 요소를 추가하거나 업데이트 한다.
# Incorrect
my_dict.key = 'value'
# Correct
my_dict['key'] = 'value'
5. 적절한 들여쓰기를 사용하지 않음
문제:코드 들여쓰기가 잘못되어 구문 오류 또는 예기치 않은 동작이 발생할 수 있다.
해결방법: 각 들여쓰기 수준에 대해 4개의 공백 또는 단일 탭을 사용하여 Python의 적절한 들여쓰기 규칙을 따라야 한다.
이러한 일반적인 실수와 해결 방법을 알고 있으면 오류를 방지하고 Python에서 보다 효율적이고 정확한 딕셔너리 코드를 작성할 수있다.
'Python' 카테고리의 다른 글
| [Python] - return value (0) | 2026.01.16 |
|---|---|
| [PYTHON] - RANGE (0) | 2026.01.15 |
| [PYTHON] - LIST (0) | 2026.01.01 |
| [PYTHON] - FOR (0) | 2026.01.01 |
| [PYTHON] - 함수정의,호출 (0) | 2026.01.01 |