반응형
딕셔너리는 Key:Value 쌍이 원소인 자료구조입니다. 딕셔너리에는 아래와 같은 특징이 있습니다.
1) Key에는 자료형과 튜플만 올 수 있음
2) Key는 중복이 불가능함
3) Value에는 자료형과 자료구조가 둘다 올 수 있음
4) Value는 중복이 가능함
5) 숫자 인덱싱 불가 (key를 이용한 value 접근은 가능)
6) Value만 수정 가능
7) 원소 삭제/추가 가능
8) 덧셈,곱셈 등 산술연산 불가
오늘은 1,2번 성질을 배워봅시다.
딕셔너리의 key에는 자료형과 튜플만 사용 가능합니다. 숫자, 문자, 논리형이 올 수 있습니다. 튜플을 제외한 리스트 등의 자료구조는 사용이 불가합니다.
key를 튜플로 정의해봅시다.
>>> dic1={('김정빈','이에요'):75,'김정빈':56,'임호정':23}
>>> dic1
{('김정빈', '이에요'): 75, '김정빈': 56, '임호정': 23}
이번에는 리스트로 정의해봅시다.
>>> dic1={['김정빈','이에요']:75,'김정빈':56,'임호정':23}
Traceback (most recent call last):
File "<pyshell#195>", line 1, in <module>
dic1={['김정빈','이에요']:75,'김정빈':56,'임호정':23}
TypeError: unhashable type: 'list'
위와 같이 오류가 발생합니다. 리스트가 unhashable 하기 때문에 안된다고 합니다. hashable 하지 않은게 문제인데 hashable 은 hash가 가능하다는 것입니다. 이를 이해하려면 hash가 뭔지 알아야 하는데 나중에 다루기로 하구요. hash가 가능하려면 '불변(immutable)'이어야 합니다. 딕셔너리의 Key 값으로는 불변 타입만 올 수 있습니다. 리스트의 경우 변경가능한 타입이므로, key값이 될 수 없습니다.
또한 key 는 중복이 불가능합니다. key를 중복해서 정의해봅시다.
>>> dic1={'김정빈':75,'김정빈':56,'임호정':23}
>>> dic1
{'김정빈': 56, '임호정': 23}
뒤에 정의된 김정빈만 입력됩니다. 만약 김정빈이 두명 있으면 어떡해야 할까요. 김정빈A, 김정빈B로 입력해야 합니다.
>>> dic1={'김정빈A':75,'김정빈B':56,'임호정':23}
>>> dic1
{'김정빈A': 75, '김정빈B': 56, '임호정': 23}
반응형
'파이썬 > 통계분석' 카테고리의 다른 글
[파이썬 강의] 23. 딕셔너리 value에 접근하기 (0) | 2021.10.07 |
---|---|
[파이썬 강의] 22. 딕셔너리 value의 특징 (0) | 2021.10.07 |
[파이썬 강의] 20. 자료구조 - 딕셔너리 (0) | 2021.10.07 |
[파이썬 강의] 19. 자료구조 - 튜플 (0) | 2021.10.07 |
[파이썬 강의] 18. 리스트의 덧셈과 곱셈 (0) | 2021.10.07 |
댓글