3. 딕셔너리(Dictionary)
▶ 문법 기호/함수 : {key1 : value1, key2 : value2, key3 : value3 ... } / 함수 : dict()
▶ key로 가질 수 있는 데이터 타입 : 문자, 숫자, 튜플(Tuple)
▶ value로 가질 수 있는 데이터 타입 : 문자, 숫자, 리스트(List), 딕셔너리(Dict) ...
▶ 아이템 = key&value 하나의 쌍
▶ 종류
아이템이 없는 딕셔너리
1차원 딕셔너리
* 다차원 딕셔너리
▶ 특징
key, value의 차이점
인덱스 번호를 가지지 않는다.(!!! 중요한 특징 !!!!)
1. 생성하기
- 문법기호 : {k1:v1, k2:v2,.....}
- list처럼 dict()함수로 생성할 수도 있다.
- 리스트 형태의 2차원 자료를 이용해 딕셔너리로 변환 가능
- 딕셔너리의 value 값에 들어갈 수 있는 자료에는 제약이 없다.
- 딕셔너리의 구성 요소인 key값과 value값의 차이점 :
- 1) key값에는 중복된 자료가 못 들어가며
- 2) 만약 선언단계에서 중복된 key로 선언시 가장 마지막 하나만 반영된다.
2. 인덱싱
- 인덱싱 문법 기호
- 기존의 인덱싱 방법은 객체[인덱스번호]이지만, 딕셔너리는 key값이 인덱스 번호 역할을 한다.
- 없는 key값을 조회하면 에러 메세지를 출력한다.
- 다만 내장함수인 .get()을 사용하면 에러가 나지 않고 출력값이 나오지 않는다.
- 딕셔너리는 슬라이싱이 불가능하다.
- 슬라이싱 대신 반복문을 사용해야 한다.
- 일차원 Vs 다차원 인덱싱
- 연습문제를 통해 알아보자.
- 아래와 같은 다차원 딕셔너리를 만들고 제시한 값을 출력해보세요.
{'a' : [1, 2, 3], 'b' : 100, 'c' : {'key1' : ['파인애플', '포도', '바나나'], 'key2' : (55, 66)}}
- 1) 3 출력하기
- 2) ['파인애플', '포도', '바나나']
- 3) 포도 출력하기
- 4) 55 출력하기
- 아이템 추가하기
- 인덱싱 방식으로 새로운 아이템 추가 메소드 : update()
- 기존의 key값에 value 할당 시 값이 갱신(인덱스번호가 없기 때문에 이런 방식의 문법을 사용)
- 하나 이상의 아이템(key & value) 추가/수정 : 딕셔너리자료.update()
- 추가할 아이템 타입 : 딕셔너리를 직접 넣어줘도 되고 딕셔너리로 변환이 가능한 리스트를 넣어줘도 됩니다.