1. 딕셔너리란?
딕셔너리(Dictionary)는 파이썬의 내장 데이터 타입 중 하나로, 키(Key)와 값(Value)의 쌍으로 데이터를 저장하는 데 사용됩니다. 딕셔너리는 키를 통해 빠르게 데이터에 접근할 수 있는 효율적인 구조를 가지고 있으며, 해시 테이블(Hash Table)을 기반으로 구현되어 있습니다.
2. 딕셔너리의 특징
(1) 키-값 쌍(Key-Value Pairs): 각 항목은 키와 값으로 구성되어 있으며, 키를 통해 해당하는 값을 찾을 수 있습니다.
(2) 변경 가능(Mutable): 딕셔너리는 변경 가능하므로, 생성 후에 항목을 추가, 삭제, 수정할 수 있습니다.
(3) 순서가 없음(Unordered): 딕셔너리는 Python 3.7 이전 버전에서는 순서가 없는 구조였으나, Python 3.7부터는 항목이 추가된 순서를 유지합니다. 그러나 일반적으로 순서에 의존하지 않는 특성을 가지고 있습니다.
(4) 키의 유일성(Unique Keys): 딕셔너리의 키는 유일해야 합니다. 같은 키가 여러 번 사용될 경우, 마지막으로 할당된 값이 저장됩니다.
(5) 다양한 데이터 타입(Diverse Data Types): 키와 값 모두 다양한 데이터 타입을 가질 수 있습니다. 키는 변경 불가능한(immutable) 타입이어야 하며, 일반적으로 문자열 또는 숫자가 사용됩니다.
3. 예시
# 딕셔너리 생성
my_dict = {
'name': 'John',
'age': 30,
'city': 'New York'
}
# 값 접근
print(my_dict['name']) # 출력: John
# 값 변경
my_dict['age'] = 31
# 새로운 키-값 쌍 추가
my_dict['email'] = 'john@example.com'
# 키-값 쌍 삭제
del my_dict['city']
# 모든 키와 값 출력
for key, value in my_dict.items():
print(key, value)
4. 딕셔너리 인덱싱
딕셔너리는 없는 key를 통해 인덱싱하면 에러가 발생합니다. 에러가 발생하면 파이썬 인터프리터가 종료되죠. 그래서 더 안전한 방법이 필요합니다. 바로 get 함수를 이용하는 것입니다. get 함수를 이용하면 key가 없는 경우에 None을 리턴 시킵니다.
헬스장가격 = {
"1개월" : 120000,
"3개월" : 300000,
"6개월" : 500000
}
print(헬스장가격["12개월"])
print(헬스장가격["1개월"])
위와 같이 입력하면 print(헬스장가격["12개월"])에서 에러가 발생하고 더 이상 진행되지 않습니다.
헬스장가격 = {
"1개월" : 120000,
"3개월" : 300000,
"6개월" : 500000
}
print(헬스장가격.get("12개월"))
print(헬스장가격.get("1개월"))
하지만 get 함수를 이용하면
None
120000
이 출력됩니다.
5. 딕셔너리 수정
딕셔너리는 수정이 가능합니다.
헬스장의 6개월권을 할인해서 40만원으로 변경하였습니다. 그럼 이렇게 적어주면 수정이 됩니다.
헬스장가격 = {
"1개월" : 120000,
"3개월" : 300000,
"6개월" : 500000
}
헬스장가격["6개월"]=400000
print(헬스장가격.get("6개월"))
400000
6. 딕셔너리 값 추가
리스트의 경우 insert나 append 라는 함수를 이용하여 값을 추가할 수 있습니다. 하지만 딕셔너리는 딕셔너리[key] = value로 추가가 가능합니다.
헬스장가격 = {}
헬스장가격["1개월"] = 120000
헬스장가격["3개월"] = 300000
헬스장가격["6개월"] = 500000
print(헬스장가격.get("1개월"))
print(헬스장가격.get("3개월"))
print(헬스장가격.get("6개월"))
이렇게 비어 있는 딕셔너리에 딕셔너리[key] = value만 입력해주면 추가가 됩니다.
7. 딕셔너리 값 삭제
딕셔너리 삭제는 del을 이용하면 됩니다.
즉, del 딕셔너리[key] 를 입력하면 충분합니다.
헬스장가격 = {}
헬스장가격["1개월"] = 120000
헬스장가격["3개월"] = 300000
헬스장가격["6개월"] = 500000
del 헬스장가격["6개월"]
print(헬스장가격.get("1개월"))
print(헬스장가격.get("3개월"))
print(헬스장가격.get("6개월"))
위 코드를 실행하면 120000, 300000, None이 출력됩니다. 즉, 6개월 가격이 삭제된 것입니다.
'0th Pipeline - Self-development > How to programming' 카테고리의 다른 글
[파이썬] 300제 혼자 풀기 (11-20) (0) | 2024.01.21 |
---|---|
[파이썬] 300제 혼자 풀기 (1-10) (0) | 2024.01.20 |
[파이썬] 튜플(tuple), 순서가 있고, 수정이 불가능한 자료 (0) | 2024.01.20 |
[파이썬] 스타 언패킹(Star unpacking): 코드를 효율적으로 짜는 TIP (0) | 2023.07.16 |
[파이썬] 데이터 언패킹(data unpacking): 효율적으로 코드 짜는 Tip (0) | 2023.07.16 |