이번엔 파이썬에서 가장 많이 사용되고 유용한 자료구조인 딕셔너리에 대하여 알아보도록 하겠습니다.
1. 딕셔너리(Dictionary)란?
파이썬의 딕셔너리(Dictionary)란 키(key)와 값(Value)을 쌍으로 연결하여 데이터를 저장하는 데이터 구조입니다.
리스트와 튜플과는 달리 인덱스가 아닌 고유한 키를 사용하여 값에 접근하는 자료구조 입니다.
딕셔너리의 키는 중복되지 않기에 이러한 특성을 통하여 데이터를 구조화하고 검색하는데 매우 효과적인
자료구조 입니다.
2. 딕셔너리(Dictionary) 생성하기
딕셔너리는 중괄호 '{ }' 를 사용하여 생성합니다. 다음 예제와 같이 키와 값으로 구조화 합니다.
person = {
"name": "vipdeveloper",
"age": 33,
"email": "vipdeveloper@example.com"
}
3. 딕셔너리(Dictionary) 의 키와 값
- 키(Key): 딕셔너리(Dictionary)에서 각 요소를 식별하는 고유한 값입니다. 키는 변경 불가능한 데이터 타입이여야 합니다
ex) 문자열, 숫자, 튜플
- 값(Value): 각 키(Key)에 연결된 데이터로 키(Key)를 통해 접근할 수 있습니다. 값은 어떤 데이터 타입이든 가능합니다.
4. 딕셔너리(Dictionary) 키를 사용하여 값에 접근하기
딕셔너리(Dictionary)의 특정 값을 가져오려면 해당 키를 사용하여 접근합니다.
print(person["name"]) # 출력: "vipdeveloper"
print(person["age"]) # 출력: 33
5. 딕셔너리(Dictionary)의 값 변경하기
딕셔너리(Dictionary)의 자료구조의 경우 지난번 글의 튜플(tuple)과는 달리 변경 가능한(mutable) 데이터 타입으로, 기존 키(Key)의 값(Vaule)을 변경하거나 새로운 키(Key) - 값(Vaule)을 추가할 수 있습니다.
person["age"] = 34 # 값 변경
person["city"] = "Seoul" # 새로운 키-값 쌍 추가
6. 딕셔너리(Dictionary)와 반복문 사용 (for)
딕셔너리(Dictionary)도 반복문을 사용하여 조회할 수 있습니다.
for key in person:
print(key, person[key])
7. 딕셔너리(Dictionary) 메서드
파이썬은 딕셔너리에 유용한 메서드를 제공합니다.
7-1. keys() 메서드
'keys()' 메서드는 딕셔너리의 모든 키들을 포함하는 'dict_keys' 개체를 반환합니다. 이 메서드를 사용하여 딕셔너리의 모든 키에 접근할 수 있습니다.
person = {
"name": "vipdeveloper",
"age": 33,
"email": "vipdeveloper@example.com"
}
# keys() 메서드로 딕셔너리의 모든 키를 얻습니다.
keys = person.keys()
print(keys) # 출력: dict_keys(['name', 'age', 'email'])
# dict_keys 객체를 리스트로 변환하여 키들을 출력합니다.
key_list = list(keys)
print(key_list) # 출력: ['name', 'age', 'email']
7-2. values() 메서드
'values()' 메서드는 딕셔너리의 모든 값들을 포함하는 'dict_values' 객체를 반환합니다.
이 메서드를 사용하여 딕셔너리의 모든 값을 접근 할 수 있습니다.
person = {
"name": "vipdeveloper",
"age": 33,
"email": "vipdeveloper@example.com"
}
# values() 메서드로 딕셔너리의 모든 값을 얻습니다.
values = person.values()
print(values) # 출력: dict_values(['vipdeveloper', 33, 'vipdeveloper@example.com'])
# dict_values 객체를 리스트로 변환하여 값들을 출력합니다.
value_list = list(values)
print(value_list) # 출력: ['vipdeveloper', 33, 'vipdeveloper@example.com']
7-3. items() 메서드
'items()' 메서드는 딕셔너리의 모든 키(Key)-값(Value) 쌍을 포함하는 'dict_items' 객체를 반환합니다.
이 메서드를 사용하여 딕셔너리의 모든 키(Key)-값(Value)을 쌍으로 접근 할 수 있습니다.
person = {
"name": "vipdeveloper",
"age": 33,
"email": "vipdeveloper@example.com"
}
# items() 메서드로 딕셔너리의 모든 키-값 쌍들을 얻습니다.
items = person.items()
print(items) # 출력: dict_items([('name', 'vipdeveloper'), ('age', 33), ('email', 'vipdeveloper@example.com')])
# dict_items 객체를 리스트로 변환하여 키-값 쌍들을 출력합니다.
item_list = list(items)
print(item_list) # 출력: [('name', 'vipdeveloper'), ('age', 33), ('email', 'vipdeveloper@example.com')]
# for 루프를 사용하여 키와 값을 각각 접근합니다.
for key, value in items:
print(f"Key: {key}, Value: {value}")
8. 딕셔너리(Dictionary)의 활용
딕셔너리는 많은 상황에서 사용되는데 이중 Json 데이터를 파싱하거나 데이터를 그룹화 하여 관리하는 작업에 자주 사용됩니다.
9. 딕셔너리(Dictionary) 사용시 주의해야할 점
- 딕셔너리(Dictionary)는 순서 보장을 하지 않기때문에 인덱스를 사용하여 요소에 접근할 수 없습니다. 보장이 되는 딕셔너리(Dictionary)도 존재하나 이는 특정 경우에만 해당 되는 것이기에 주의합니다.
- 딕셔너리(Dictionary)는 해시 테이블로 구현되어 있기에 매우 큰 데이터에서 빠른 검색속도를 보장하지만 메모리 사용량이 크다는 점을 염두해야 합니다.
지금까지 파이썬에서 가장 효율적이라 생각하는 자료구조인 딕셔너리(Dictionary)에 대하여 알아보았습니다!
'파이썬(python) 기본' 카테고리의 다른 글
파이썬 함수 2편: 람다(lambda) 함수와 예제들 (map, filter, reduce 포함) (0) | 2023.07.25 |
---|---|
파이썬 함수 1편: 파이썬 함수란? Function 이란? (0) | 2023.07.25 |
파이썬 자료구조: 튜플(tuple) (0) | 2023.07.21 |
파이썬 자료구조: 리스트(list) (0) | 2023.07.19 |
파이썬 기초 문법: 함수, 리스트와 딕셔너리, 그리고 라이브러리(모듈) (0) | 2023.07.19 |