딕셔너리(Dictionary)는 사전이란 뜻으로 키(Key)와 값(Value)을 한쌍으로 저장합니다. ex) 'name' : '홍길동'
키(Key)와 값(Value)처럼 대응하는 구조를 해시(hash)라고 합니다.
딕셔너리는 리스트나 튜플과 다르게 키를 이용해서 값을 얻어야 합니다.
딕셔너리의 기본형은 다음과 같습니다.
변수명 = {key1:value1, key2:value2, key3:value3, ...}
예제로 살펴보겠습니다.
color = {'red': '빨강', 'blue': '파랑', 'black': '검정'}
print(color)
살펴보면
Key | Value(값) |
red | 빨강 |
blue | 파랑 |
black | 검정 |
값에는 정수, 실수, 문자열 말고도 리스트, 튜플도 가능합니다.
table = {'2단': (2, 4, 6, 8, 10, 12, 14, 16, 18), '3단': (3, 6, 9, 12, 15, 18, 21, 24, 27)}
people = {'홍길동': [23, '01012345678', '남'], '영희': [23, '01012345678', '여']}
키는 중복되면 안 됩니다. 하지만 값은 중복돼도 상관이 없습니다.
키는 한번 선언하면 변경이 불가능합니다. 읽기 전용입니다.
값을 읽는 방법은
table = {2: (2, 4, 6, 8, 10, 12, 14, 16, 18), 3: (3, 6, 9, 12, 15, 18, 21, 24, 27)}
print(table[2])
딕셔너리이름[키]로 해당 키의 값을 읽어올 수 있습니다.
[] 안의 값이 리스트나 튜플처럼 인덱스가 아닌 키가 들어가야 합니다.
만약 찾는 키가 없다면 예외가 발생합니다.
예외가 발생하는 게 싫다면 get()을 사용하면 찾는 키가 없어도 예외가 발생하지 않습니다.
table = {2: (2, 4, 6, 8, 10, 12, 14, 16, 18), 3: (3, 6, 9, 12, 15, 18, 21, 24, 27)}
print(table.get(4))
print(table.get(4, '입력하신 키는 존재하지 않습니다'))
get()은 첫 번째 인수는 키입니다. 두 번째 인수는 생략하면 None 이 반환되고 입력하면 원하는 값을 반환할 수 있습니다.
만약 키 또는 값만 따로 보고 싶다면 가능합니다.
color = {'red': '빨강', 'blue': '파랑', 'black': '검정'}
print(color.keys())
print(color.values())
print(color.items())
.keys()는 딕셔너리의 모든 키를 리스트형으로 반환합니다.
.values()는 딕셔너리의 모든 값을 리스트형으로 반환합니다.
.items()은 딕셔너리의 키와 값을 튜플형으로 반환합니다.
딕셔너리는 수정, 추가, 삭제가 가능한 자료형입니다.
먼저 수정은 딕셔너리이름[키]에 대입만으로 가능합니다.
color = {'red': '빨강', 'blue': '파랑', 'black': '검정'}
color['blue'] = '노랑'
print(color)
people = {'홍길동': [23, '01012345678', '남'], '영희': [23, '01012345678', '여']}
people['홍길동'][0] = 35
print(people)
처음 선언한 값에서 새롭게 대입한 값으로 수정된 결과를 보실 수 있습니다.
추가도 간단하게 할 수 있습니다.
딕셔너리이름[새로운 키] = 값으로 새롭게 추가가 가능합니다.
color = {'red': '빨강', 'blue': '파랑', 'black': '검정'}
print(color)
color['yellow'] = '노랑'
print(color)
요소에 존재하지 않는 키에 값을 대입하면 딕셔너리는 새롭게 추가합니다.
수정과 추가는 딕셔너리의 메서드로도 가능합니다.
.setdefault(키, 값)은 새로운 요소를 추가할 수 있습니다.
color = {'red': '빨강', 'blue': '파랑', 'black': '검정'}
color.setdefault('yellow', '노랑')
print(color)
color.setdefault('green')
print(color)
.setdefault()은 값을 생략할 수 있습니다. 생략하게 되면 값에 None이 저장됩니다.
.update(키= 값)은 추가와 수정이 가능합니다.
color = {'red': '빨강', 'blue': '파랑', 'black': '검정'}
color_2 = {'white': '하얀', 'green': '초록'}
print(color)
color.update(red='검정')
print(color)
color.update(pink='분홍')
print(color)
color.update(color_2)
print(color)
딕셔너리에 존재하는 키와 값을 입력하면 값이 수정됩니다.
딕셔너리에 존재하지 않는 키와 값을 입력하면 요소가 추가됩니다.
다른 딕셔너리를 인수로 넣어주면 이어서 추가됩니다.단 주의할 점은 예제를 살펴보면 키를 입력할 때 'red'가 아닌 red로 해야 합니다. ''나""가 없이 입력해야 합니다. 또한 ,가 아니냐 =로 값을 입력해야 합니다.
삭제도 알아보겠습니다.
먼저 리스트에서도 사용했던 .pop()
color = {'red': '빨강', 'blue': '파랑', 'black': '검정'}
print(color.pop('blue'))
print(color)
.pop()는 리스트처럼 키를 입력하면 입력한 키의 요소를 삭제합니다. 삭제할 때 해당 키의 값을 반환합니다.
다음으로 독특한 삭제 메서드가 한가지 있습니다.
바로 .popitem()입니다.이 메서드는 파이썬 버전에 따라서 결과가 조금 다릅니다.3.6 미만은 임의의 키를 삭제합니다. 3.6부터는 마지막 키를 삭제합니다.현재 예제는 3.8이라 맨 마지막 값이 삭제됩니다.
color = {'red': '빨강', 'blue': '파랑', 'black': '검정'}
print(color.popitem())
print(color)
그리고 del을 이용해서도 삭제가 가능합니다.
color = {'red': '빨강', 'blue': '파랑', 'black': '검정'}
del color['blue']
del 딕셔너리이름[키]로 해당 키의 요소를 삭제할 수 있습니다.
'공부 자료실 > 파이썬(Python)' 카테고리의 다른 글
파이썬(Python) - 모듈(module) (0) | 2020.07.10 |
---|---|
파이썬(Python) - 딕셔너리와 리스트, 튜플 (0) | 2020.07.09 |
파이썬(Python) - 함수 (0) | 2020.07.08 |
파이썬(Python) - 리스트와 튜플 (0) | 2020.07.08 |
파이썬(Python) - 튜플(Tuple) (0) | 2020.07.07 |
댓글