파이썬로드

파이썬 독학, 딕셔너리 자료형

CODINGLORD 2024. 7. 1. 16:10

딕셔너리 자료형

딕셔너리란?

딕셔너리는 키와 값의 쌍으로 데이터를 저장하는 자료형입니다. 키를 사용하여 값에 빠르게 접근할 수 있습니다. 딕셔너리는 `{}`를 사용하여 생성합니다.

 


딕셔너리는 어떻게 만들까?

딕셔너리는 중괄호 `{}`를 사용하여 키-값 쌍을 정의합니다. 각 키-값 쌍은 콜론 `:`으로 구분되고, 쌍들은 쉼표 `,`로 구분됩니다.

예제 1

# 빈 딕셔너리 생성
empty_dict = {}
print(empty_dict)  # {}

# 값이 있는 딕셔너리 생성
person = {"name": "John", "age": 30, "city": "New York"}
print(person)  # {"name": "John", "age": 30, "city": "New York"}



예제 2

# 키-값 쌍 추가하여 딕셔너리 생성
student = {"id": 101, "name": "Alice", "grades": [85, 92, 78]}
print(student)  # {"id": 101, "name": "Alice", "grades": [85, 92, 78]}


딕셔너리 쌍 추가, 삭제하기


딕셔너리 쌍 추가하기


딕셔너리에 새로운 키-값 쌍을 추가하려면 새로운 키를 사용하여 값을 할당하면 됩니다.

 

예제 1

person = {"name": "John", "age": 30}
person["city"] = "New York"
print(person)  # {"name": "John", "age": 30, "city": "New York"}


예제 2

student = {"id": 101, "name": "Alice"}
student["grades"] = [85, 92, 78]
print(student)  # {"id": 101, "name": "Alice", "grades": [85, 92, 78]}



딕셔너리 쌍 삭제하기


딕셔너리에서 키-값 쌍을 삭제하려면 `del` 키워드를 사용합니다.

예제 1

person = {"name": "John", "age": 30, "city": "New York"}
del person["age"]
print(person)  # {"name": "John", "city": "New York"}



예제 2

student = {"id": 101, "name": "Alice", "grades": [85, 92, 78]}
del student["grades"]
print(student)  # {"id": 101, "name": "Alice"}



딕셔너리를 사용하는 방법



값 접근하기


딕셔너리에서 값을 가져오려면 키를 사용합니다.

예제 1

person = {"name": "John", "age": 30, "city": "New York"}
name = person["name"]
print(name)  # John


예제 2

student = {"id": 101, "name": "Alice", "grades": [85, 92, 78]}
grades = student["grades"]
print(grades)  # [85, 92, 78]



값 변경하기


딕셔너리의 값을 변경하려면 기존 키에 새로운 값을 할당합니다.

예제 1

person = {"name": "John", "age": 30, "city": "New York"}
person["age"] = 31
print(person)  # {"name": "John", "age": 31, "city": "New York"}



예제 2

student = {"id": 101, "name": "Alice", "grades": [85, 92, 78]}
student["name"] = "Bob"
print(student)  # {"id": 101, "name": "Bob", "grades": [85, 92, 78]}


딕셔너리 관련 함수

`keys()`: 딕셔너리의 모든 키를 반환합니다.

person = {"name": "John", "age": 30, "city": "New York"}
keys = person.keys()
print(keys)  # dict_keys(['name', 'age', 'city'])

 


 `values()`: 딕셔너리의 모든 값을 반환합니다.

person = {"name": "John", "age": 30, "city": "New York"}
values = person.values()
print(values)  # dict_values(['John', 30, 'New York'])

 


 `items()`: 딕셔너리의 모든 키-값 쌍을 튜플로 반환합니다.

person = {"name": "John", "age": 30, "city": "New York"}
items = person.items()
print(items)  # dict_items([('name', 'John'), ('age', 30), ('city', 'New York')])



`get()`: 키를 사용하여 값을 가져오며, 키가 없을 경우 기본값을 반환합니다.

person = {"name": "John", "age": 30, "city": "New York"}
age = person.get("age", "Unknown")
print(age)  # 30
country = person.get("country", "Unknown")
print(country)  # Unknown

 


`update()`: 다른 딕셔너리의 키-값 쌍을 사용하여 딕셔너리를 업데이트합니다.

person = {"name": "John", "age": 30}
additional_info = {"city": "New York", "job": "Developer"}
person.update(additional_info)
print(person)  # {"name": "John", "age": 30, "city": "New York", "job": "Developer"}

 

 

`pop(): 특정 키를 사용하여 값을 가져오고, 해당 키-값 쌍을 딕셔너리에서 제거합니다.

person = {"name": "John", "age": 30, "city": "New York"}
age = person.pop("age")
print(age)  # 30
print(person)  # {"name": "John", "city": "New York"}

 


`popitem(): 딕셔너리의 마지막 키-값 쌍을 제거하고 반환합니다.

person = {"name": "John", "age": 30, "city": "New York"}
last_item = person.popitem()
print(last_item)  # ('city', 'New York')
print(person)  # {"name": "John", "age": 30}

 

 

`clear(): 딕셔너리의 모든 키-값 쌍을 제거합니다.

person = {"name": "John", "age": 30, "city": "New York"}
person.clear()
print(person)  # {}

 

 

`copy(): 딕셔너리의 얕은 복사본을 반환합니다.

person = {"name": "John", "age": 30, "city": "New York"}
person_copy = person.copy()
print(person_copy)  # {"name": "John", "age": 30, "city": "New York"}

 

 

`fromkeys(): 제공된 키들로 딕셔너리를 생성하고, 모든 키의 값을 동일하게 설정합니다.

keys = ["name", "age", "city"]
default_value = "Unknown"
new_dict = dict.fromkeys(keys, default_value)
print(new_dict)  # {"name": "Unknown", "age": "Unknown", "city": "Unknown"}


이와 같이 딕셔너리의 정의, 생성 방법, 요소 추가 및 삭제, 사용 방법, 관련 함수 등을 설명했습니다. 각 항목에 대한 예시를 통해 딕셔너리를 효과적으로 다룰 수 있을 것입니다.