목차
- 키-값 쌍이란?
- 딕셔너리(Dictionary)
- 자주 발생하는 실수 유형
키-값 쌍이란?
Python 딕셔너리에서 키와 값은 키-값 쌍을 형성하는 두 가지 주요 구성 요소입니다.
키(key)
- 키는 딕셔너리에 저장된 해당 값을 참조하는 데 사용되는 고유 식별자입니다.
- 키는 일반적으로 문자열이나 숫자이지만 튜플(불변 요소만 포함)과 같은 다른 불변 데이터 유형일 수도 있습니다.
- 딕셔너리의 각 키는 고유해야 합니다. 기존 키에 새 값을 할당하면 이전 값이 대체됩니다.
값(value)
- 값은 딕셔너리의 해당 키와 관련된 데이터입니다.
- 값은 문자열, 숫자, 목록, 튜플 또는 기타 딕셔너리과 같은 모든 데이터 유형이 될 수 있습니다.
- 값은 딕셔너리에서 중복될 수 있습니다. 여러 키가 동일한 값을 가질 수 있습니다.
다음은 키와 값이 있는 Python 딕셔너리의 예입니다.
person = {
"name": "Alice",
"age": 30,
"city": "New York",
"job": "Software Engineer"
}
이 예에서 키는 "name", "age", "city" 및 "job"이고 값은 "Alice", 30, "New York" 및 "Software 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 기본' 카테고리의 다른 글
[Python] For문과 다른 함수 복합사용 방법(range, list) (0) | 2023.04.25 |
---|---|
[Python] range함수와 응용법들 (2) | 2023.04.23 |
[Python] 파이썬 for 문과 응용 (0) | 2023.04.22 |
[Python] 파이썬 list 함수와 다양한 활용법 (0) | 2023.04.22 |
[Python] IF 함수를 논리적으로 False로 만들기 (0) | 2023.04.21 |