딕셔너리(Dictionary)는 파이썬에서 가장 많이 사용되는 매핑(mapping) 타입으로, 키(key)와 값(value)을 한 쌍으로 묶어 데이터를 저장하는 자료구조입니다. 자바의 Map>과 개념적으로 유사하며, 키를 통해 빠르게 값을 찾아올 수 있다는 것이 가장 큰 특징입니다.
파이썬에서는 중괄호 {}를 사용해 딕셔너리를 만들고, 키와 값은 콜론(:)으로 구분하며, 각 키/값 쌍은 콤마(,)로 구분합니다.
딕셔너리 생성 방법
datedict = {
"date": 13,
"month": "January",
"year": 1970
}
print(datedict)
실행 결과:
{'date': 13, 'month': 'January', 'year': 1970}
이때 키는 문자열뿐 아니라 숫자처럼 변경 불가능한(immutable) 값도 사용할 수 있으며, 하나의 딕셔너리 안에서 키는 서로 중복될 수 없습니다.
딕셔너리 항목에 접근하는 방법
대괄호 [] 안에 키 이름을 넣거나, get() 메서드를 사용해 원하는 값을 가져올 수 있습니다.
datedict = {
"date": 13,
"month": "January",
"year": 1970
}
date = datedict["date"]
year = datedict.get("year")
print(date, year)
실행 결과:
13 1970
두 방식의 차이점도 알아두면 좋습니다. 존재하지 않는 키에 []로 접근하면 KeyError가 발생하지만, get() 메서드는 오류 대신 None을 반환합니다. 또한 datedict.get("week", "없음")처럼 두 번째 인자를 지정하면, 해당 키가 없을 때 반환할 기본값을 설정할 수 있습니다.
항목 값 변경 방법
키 이름을 참조해 새로운 값을 할당하면 해당 항목의 값이 변경됩니다.
datedict = {
"date": 13,
"month": "January",
"year": 1970
}
datedict["date"] = 20
print(datedict)
실행 결과:
{'date': 20, 'month': 'January', 'year': 1970}
딕셔너리 순회(반복) 방법
for 반복문을 사용하면 딕셔너리를 순회할 수 있습니다. 상황에 따라 키만, 값만, 또는 키/값 쌍 전체를 꺼내 처리할 수 있습니다.
모든 키 가져오기
datedict = {
"date": 13,
"month": "January",
"year": 1970
}
for d in datedict:
print(d)
실행 결과:
date
month
year
모든 값 가져오기
datedict = {
"date": 13,
"month": "January",
"year": 1970
}
for d in datedict:
print(datedict[d])
실행 결과:
13
January
1970
values() 메서드를 사용하면 더 직관적으로 값만 순회할 수 있습니다.
datedict = {
"date": 13,
"month": "January",
"year": 1970
}
for d in datedict.values():
print(d)
실행 결과:
13
January
1970
키와 값을 함께 가져오기
items() 메서드를 사용하면 키와 값을 동시에 꺼낼 수 있습니다.
datedict = {
"date": 13,
"month": "January",
"year": 1970
}
for k, v in datedict.items():
print(k, v)
실행 결과:
date 13
month January
year 1970
딕셔너리 길이 구하기
len() 함수를 호출하면 딕셔너리에 저장된 키/값 쌍의 개수를 확인할 수 있습니다.
datedict = {
"date": 13,
"month": "January",
"year": 1970
}
print(len(datedict))
실행 결과:
3
딕셔너리에 항목 추가하기
새로운 키와 그에 대응하는 값을 지정하면 새 항목이 추가됩니다.
datedict = {
"date": 13,
"month": "January",
"year": 1970
}
datedict["season"] = "winter"
print(datedict)
실행 결과:
{'date': 13, 'month': 'January', 'year': 1970, 'season': 'winter'}
딕셔너리에서 항목 삭제하기
pop() 메서드에 삭제할 키 이름을 전달하면 해당 항목이 제거되고, 삭제된 값이 반환됩니다.
datedict = {
"date": 13,
"month": "January",
"year": 1970,
"season": "winter"
}
datedict.pop("season")
print(datedict)
실행 결과:
{'date': 13, 'month': 'January', 'year': 1970}
del 키워드를 사용해 특정 키의 항목을 삭제할 수도 있습니다.
datedict = {
"date": 13,
"month": "January",
"year": 1970,
"season": "winter"
}
del datedict["season"]
print(datedict)
실행 결과:
{'date': 13, 'month': 'January', 'year': 1970}
참고: del 키워드는 특정 항목뿐 아니라 딕셔너리 자체를 통째로 삭제할 때도 사용할 수 있습니다. 삭제된 이후에는 변수에 다시 접근할 수 없습니다.
datedict = {
"date": 13,
"month": "January",
"year": 1970,
}
del datedict
딕셔너리 전체 비우기
딕셔너리를 완전히 삭제하는 것과 달리, 구조는 유지한 채 내용물만 비우려면 clear() 메서드를 사용합니다.
datedict = {
"date": 13,
"month": "January",
"year": 1970,
"season": "winter"
}
datedict.clear()
print(datedict)
실행 결과:
{}