딕셔너리
딕셔너리는 말그대로 사전입니다.
영어사전을 보시면 단어 와 단어해설 의 나열로 되어 있습니다.
단어(Key)와 단어해설(Value) 의 쌍으로 된 것을 pair (쌍) 이라 부르고 pair 들의 집합을 딕셔너리(dict) 라고 부릅니다.
key 에는 불변의 상수형 자료형이 사용 가능 합니다.
숫자, 문자, 튜플 같은 변경할 수 없는 자료만 사용 가능 합니다.
list, dict 등 은 사용이 불가능 합니다. 사전에서 "dragon : 용" 인데, 설명이 용가리로 바뀔 수는 있어도 dragon 이 삭제 될지 언정 바뀌어선 안되는 것 처럼요.
dict 만들기
기본형 : { key1:value1, key2:value2, key3:value3, ....}
key 와 value 의 여러 쌍을 콤마(,) 로 구분 하고 중괄호({}) 로 감싸 주면 dict 형 자료가 됩니다.
# Code 1
dict_test = {1:"아이폰", "IMEI":"IMEI12233", "통신사":"SKT", "번호":[10,1234,1234]}
print(dict_test)
여기에서 키는 1, IMEI, 통신사, 번호가 되고
value 는 "아이폰", "IMEI12233", "SKT", "10,1234,1234] 가 됩니다.
# Code 2
# dict 접근
dict_test = {1:"아이폰", "IMEI":"IMEI12233", "통신사":"SKT", "번호":[10,1234,1234]}
print(dict_test)
print(dict_test[1])
print(dict_test["IMEI"])
print(dict_test["통신사"])
print(dict_test["번호"])
# Code 3
# dict 변경
dict_test = {1:"아이폰", "IMEI":"IMEI12233", "통신사":"SKT", "번호":[10,1234,1234]}
dict_test[1] = "노트10"
print(dict_test)
print(dict_test[1])
키는 변경이 불가능 하지만 vaule 는 언제든 변경이 가능 합니다.
'번호'에 해당하는 value 는 리스트 라서 리스트에 데이터 추가도 가능 합니다.
요소의 관리
# Code 4
# dict 추가 & 삭제
dict_test = {1:"아이폰", "IMEI":"IMEI12233", "통신사":"SKT", "번호":(10,1234,1234)}
dict_test["주인"] = "철수"
del dict_test["IMEI"]
print(dict_test)
추가 하는 법을 보면
dict_test[Key] = value 가 기본 입니다. 간단하죠?
여기서 주의 할 점은 만약 dict_test[1] = "영희" 라고 하면 어떻게 될까요?
이렇게 할 경우 기존에 dict_test[1] 에 할당된 value("아이폰") 이 삭제가 되고 dict_test[1] 에는 value("영희") 가 됩니다.
dict에서 키는 고유한 값이므로 중복이 될 수 없습니다. 가장 마지막에 설정된 값을 제외 하고 모두 무시 되는 점을 꼭 기억 하시길 바랍니다.
없는 키 참조
# Code 5
# dict 없는 key 참조ㅁ
dict_test = {1:"아이폰", "IMEI":"IMEI12233", "통신사":"SKT", "번호":(10,1234,1234)}
print(dict_test[2])
dict_test 에는 2 라는 키가 없습니다. 없는 키에 대해 참조가 일어날 경우 파이썬은 에러가 발생하고 실행이 중지 됩니다.
영어 사전에 asddddwe 라는 단어가 있는지 없는지 찾아 볼 수는 있는 거잖아요?
이렇때를 위해서 파이썬에서는 in 이라는 키워드를 재공합니다.
# Code 6
# dict 키 검사 in
dict_test = {1:"아이폰", "IMEI":"IMEI12233", "통신사":"SKT", "번호":(10,1234,1234)}
print( 2 in dict_test)
print( 1 in dict_test)
print( "번호" in dict_test)
print( "주인" in dict_test)
in 에 대한 결과는 True & False (bool) 타입으로 전달 됩니다.
결과가 True 일 경우 에만 해당 key 에 대해 참조 하시면 됩니다.
if 문이나 for 문에 대해서 아직 학습전 인데 간단하게 코드만 추가 하도록 하겠습니다.
# Code 7
# dict 키 검사 in if
dict_test = {1:"아이폰", "IMEI":"IMEI12233", "통신사":"SKT", "번호":[10,1234,1234]}
if 2 in dict_test:
print("dict_test[2] " + dict_test[2])
if 1 in dict_test:
print("dict_test[1] " + dict_test[1])
if "번호" in dict_test:
print("dict_test[통신사] " + dict_test["통신사"])
if "주인" in dict_test:
print("dict_test[주인] " + dict_test["주인"])
이런식으로 사용 하면 에러 없이 사용 가능 합니다.
Dict 의 순회
# Code 8
# dict 순회
dict_test = {1:"아이폰", "IMEI":"IMEI12233", "통신사":"SKT", "번호":[10,1234,1234]}
for k, v in dict_test.items():
print('key:' + k ' value:' + v) 'key 와 value 가 모두 str 이므로
가끔은 dict를 전체를 순회하는 경우가 있습니다.
이럴 경우 .items 를 통해 key value 를 따로 가져와서 전체 순회가 가능 합니다.
리스트, 튜플, 딕셔러니등은 앞으로도 자주 나오게 될 것입니다.
추가되는 내용이 있으면 계속 추가 하도록 하겠습니다.
'Python > Python 시작하기' 카테고리의 다른 글
12. 파이썬 제어문 - 조건문 (if) & 관계 연산자 (0) | 2019.12.17 |
---|---|
11. 파이썬 자료형 - 집합 (set) (0) | 2019.12.17 |
9. 파이썬 자료형 - 튜플(tuple) (0) | 2019.12.15 |
8. 파이썬 자료형 - 리스트 (list) (0) | 2019.12.14 |
7. 파이썬 자료형 - 불 (bool) 자료형 (0) | 2019.12.14 |