흔히 프로그래밍 언어에서 나오는 해시(hash)는 키(key)-값(value)쌍으로 이루어져 있는 구조입니다.
제 블로그에서 java 관련한 글인데요
java에서도 hash를 많이 쓰기 때문에 저 글을 보시면 이해가 빠르실 수 있습니다.
들어가기 귀찮으신 분들을 위해 간단하게 그림만 따오면
이런식의 구조입니다.
키에 따른 값이 있는 구조이죠
배열과 같이 연속된 공간에 값만 저장되어 있는게 아니라, 키에 따라서 값에 접근하는 방법입니다.
그럼 파이썬에서는 이 해시를 어떻게 표현할까요?
파이썬에서는 딕셔너리라고 표현하더군요
이번 포스팅은 이 딕셔너리를 공부하는 포스팅입니다.
먼저 딕셔너리를 선언하는 방법입니다.
위 사진에도 설명이 나와있지만 딕셔너리는 { } 구조로 되어 있습니다.
배열은 [ ], 튜플은 ( )이죠
그리고 '키' : '값'으로 선언되어 있습니다.
전체를 출력해보면
위 사진 처럼 나오게 되죠
어떻게 키 값으로 접근하냐?
맨 처음 사진 print(value1['age']) 처럼 키 값으로 접근합니다.
'age'가 키 값이기 때문이죠.
keys()함수는 키에 대한 값들을 전부 반환해줍니다.
values() 함수는 값에 대한 값들을 전부 반환해주고요
새로운 해시 값을 추가하려면 위와 같이 할 수 있습니다.
value1['grade'] = 5 와 같이 넣으면 새로운 grade라는 키 값으로 5라는 값을 넣어서 새롭게 넣게 되죠
그리고 키 값으로 접근해 값을 바꿀 수도 있구요!
grade라는 키 값이 새로 추가된게 보이죠?
또한 값도 7로 수정된 것으로 출력됩니다.
삭제는 del을 이용합니다.
key를 삭제하면 value도 삭제되죠
이제 기본적인 딕셔너리 구조를 공부했습니다.
그럼 키와 값을 이용해서 어떻게 출력을 할 수 있을까요?
반복문을 이용해서 출력해보면 아래처럼 가능합니다.
items( )함수는 딕셔너리의 key, value 값을 반환해줍니다.
그래서 for문에서 받는 인자가 2개이죠
이렇게 출력할 수 있습니다!
또한, keys( )함수와, values( )함수를 단독으로도 쓸 수 있어요
단독으로 쓰면 당연히 값은 1개씩 반환(key 또는 value)되니까 for문의 값도 1개죠
배열과 응용도 가능합니다.
lee, jin이라는 값을 갖는 fri를 이용해서 진행해보죠
배열 안에 값이 있는지 조건 체크를 하려면 if ~ in 문장을 쓰면 쉽게 가능합니다
keys( )만큼 반복을 돌면서 해당 키 값이 배열안에 있으면 있다고 나오고, 없으면 없다고 나옵니다.
위 사진 처럼 출력이 됩니다!
그리고 배열(리스트)안에 딕셔너리를 담을 수도 있습니다.
이렇게요!
프로그래밍이 익숙하지 않으신 분들은 햇갈릴 수도 있는 구조입니다.
value1의 [0]번 인덱스에는 red 색상과 5살, [1]번 인덱스에는 blue 색상과 10살 등 이렇게 값이 들어가 있는 구조입니다.
위 사진을 보면 0번 인덱스부터 2번 인덱스까지 출력된 것을 볼 수 있습니다.
그러면 각 인덱스 안에 있는 딕셔너리 값에 어떻게 접근할까요?
아래처럼 접근합니다!
value1 배열의 길이만큼 for문을 돌면서 해당되는 인덱스 i 값의 ['color'] 키 값으로 접근하죠
이렇게 출력이 될 것입니다!
그리고 반대로도 가능해요!
딕셔너리 안에 리스트를 담을 수도 있죠
여기까지 파이썬 딕셔너리 공부였습니다
'python' 카테고리의 다른 글
파이썬(python) 파일 입출력(file IO)를 알아보자 (0) | 2017.11.10 |
---|---|
파이썬(python) 사용자 입력 input 함수 (0) | 2017.11.06 |
파이썬 크롤링으로 로또번호를 알아보자~ (0) | 2017.11.06 |
파이썬(python) 배열(list) 다루기(추가, 삭제, 정렬, 거꾸로, 길이) (0) | 2017.11.03 |
파이썬3 숫자를 문자로 문자를 숫자로 바꾸기 (0) | 2017.11.02 |