파이썬 딕셔너리 자료형은(Dictionary)는 리스트와 함께 파이썬의 핵심 컨테이너 자료형입니다. 키(key)와 값(value)의 대응 관계를 저장하는 데 사용되며, 데이터를 빠르게 연산할 수 있기 때문에 매우 유용하게 사용할 수 있습니다.
오늘은 딕셔너리 자료형의 기초 부터 고급 활용법까지 모든 것을 알아보겠습니다. 혹시 컨테이너 자료형에 대해 이해가 떨어진다면, 지난 List, Tuble에 관한 글을 읽고 오시기 바랍니다.
파이썬 기초 – 7장. 파이썬 리스트 자료형
파이썬 기초 – 8장. 파이썬 튜플 자료형
1. 파이썬 딕셔너리의 개념
딕셔너리는 여러 개의 항목을 저장하는데 사용되며, 각 항목은 키와 값으로 이루어져 있습니다. 키는 고유한 값으로, 값은 해당 키와 연결된 데이터를 나타냅니다. 딕셔너리는 중괄호({}
)를 사용하여 생성하며, 각 항목은 쉼표(,
)로 구분됩니다.
2. 딕셔너리 생성 및 접근
딕셔너리를 생성할 때는 키와 값의 쌍을 key: value
형식으로 작성하는 방식과, dict()함수를 사용하는 방법이 있습니다. 중괄호를 사용하는 방법이 코드가 짧고 직관적이기 때문에 대부분 비교적 많이 사용하는 편입니다.
각 항목은 쉼표(,
)로 구분합니다. 딕셔너리 내의 값을 접근할 때는 해당 키를 사용합니다. 가장 중요한 점은 키를 통해 접근하기 때문에 키는 중복이 되면 안됩니다. 키가 다르다면 값은 중복해도 무관합니다.
# 딕셔너리 생성
student = { "이름": "홍길동", "나이": 25, "학교": "서울대학교" }
student1 = dict(이름="이순신", 나이=30, 학교="연세대학교")
# 딕셔너리 값 접근
name = student["이름"] age = student["나이"]
3. 딕셔너리의 활용
딕셔너리 자료형은 키를 활용하여 데이터를 접근하며, 검색하거나 수정이 가능합니다. 아래의 예시를 참고하시기 바랍니다.
# 딕셔너리 값 수정
student["나이"] = 26
# 새로운 항목 추가
student["전공"] = "컴퓨터 공학"
# 항목 삭제
del student["학교"]
4. 딕셔너리의 장점
- 키-값 쌍으로 데이터 저장으로 검색이 용이하다.
- 다양한 데이터 유형을 값으로 가질 수 있다.
- 가변적인 데이터 구조로 활용 가능하다.
5. 딕셔너리와 리스트의 비교
자료형을 공부 할땐 각 자료형의 특징과 차이점을 알고 있는 것이 중요합니다. 그래야 필요한 부분에 적절한 자료형을 활용할 수 있습니다. 가장 많이 사용하는 디셔너리와 리스트의 차이점을 비교하면 다음과 같습니다.
- 딕셔너리는 키와 값의 대응, 리스트는 순차적인 데이터 저장.
- 딕셔너리는 중괄호(
{}
)를 사용하여 생성, 리스트는 대괄호([]
)를 사용. - 딕셔너리는 키를 사용하여 값 접근, 리스트는 인덱스를 사용.
6. 딕셔너리 자료형의 메소드
파이써 딕셔너리 자료형도 수정이 가능한 mutable 자료형 이기 때문에 데이터를 추가/제거 할 수 있습니다. 많이 사용하는 메소드는 아래표와 같습니다. 아래의 메소드를 사용하고 반환되는 값에 대한 자료형이 무엇인지도 잘 인지해야 코드의 오류를 줄일 수 있으니, 꼭 실습을 해보시기 바랍니다.
메소드 | 설명 |
---|---|
keys() | 모든 키를 리스트로 반환 |
values() | 모든 값을 리스트로 반환 |
items() | 모든 키-값 쌍을 튜플로 반환 |
get() | 지정한 키의 값을 반환 |
pop() | 지정한 키와 해당하는 값을 삭제하고 반환 |
update() | 다른 딕셔너리의 키-값 쌍으로 업데이트 |
clear() | 모든 항목을 삭제 |
# 딕셔너리 생성
student = {"이름": "홍길동", "나이": 25}
# keys() 메소드 사용
key_list = student.keys() # ["이름", "나이"]
# values() 메소드 사용
value_list = student.values() # ["홍길동", 25]
# items() 메소드 사용
item_list = student.items() # [("이름", "홍길동"), ("나이", 25)]
# get() 메소드 사용
name = student.get("이름") # "홍길동"
# pop() 메소드 사용
age = student.pop("나이") # 25
# update() 메소드 사용
new_data = {"학교": "서울대학교"}
student.update(new_data) # {"이름": "홍길동", "학교": "서울대학교"}
# clear() 메소드 사용
student.clear() # {}
7. 딕셔너리 자료형의 고급활용
아직은 공부하지 않은 내용이라 포스팅을 할까 말까 고민했지만 빼놓을 수 없는 부분이라 다소 어려운 부분도 공유 드리도록 하겠습니다.
혹시 어렵다면 이렇게 사용하는 구나 라고 이해만 하고 넘어가시기 바라며, 뒷쪽에서 관련 함수를 공부하고 다시 돌아와서 복습을 하면 그때는 쉽게 이해가 가능 한 내용입니다! 아래의 내용은 추후 별도 포스팅으로 추가 공유 드리겠습니다.
# zip 함수를 이용하여 딕셔너리 자료를 만들 수 있습니다.
# 우리가 가지고 있는 많은 데이터는 아래처럼 나누어져 있기 때문에 두 데이터를 합여서
# zip함수를 활용하면 쉽게 자료를 만들 수 있습니다.
keys = ["이름", "나이", "학교"]
values = ["홍길동", 25, "서울대학교"]
student = dict(zip(keys, values))
# List Comprehension을 사용하여 딕셔너리를 만들 수 도 있습니다.
student = {key: value for key, value in [("이름", "홍길동"), ("나이", 25), ("학교", "서울대학교")]} # {'이름': '홍길동', '나이': 25, '학교': '서울대학교'}
8. 마무리
파이썬 딕셔너리 자료형은는 데이터를 효율적으로 관리하고 검색하는데 유용한 자료형입니다. 다양한 메소드를 활용하여 데이터를 조작하고 활용할 수 있습니다. 키를 통한 접근이라는 딕셔너리의 편리한 특징은 빠른 프로그래밍 을 가능하게 해주며, 나중에 공부할 JSON형태와 호환성이 높기 때문에 활용도가 매우 높습니다. 다소 어려울수 있는 부분이지만 꼼꼼하게 공부 하시기 바랍니다.