Link
04-22 22:17
«   2021/04   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
Archives
Today
2,494
Total
1,491,454
관리 메뉴

꿈 많은 사람의 이야기

파이썬(python) 해시(딕셔너리) 다루기(추가, 수정, 삭제, keys(), values()) 본문

python

파이썬(python) 해시(딕셔너리) 다루기(추가, 수정, 삭제, keys(), values())

오키여 이수진의 블로그 2017. 11. 6. 11:00
반응형

흔히 프로그래밍 언어에서 나오는 해시(hash)는 키(key)-값(value)쌍으로 이루어져 있는 구조입니다.

http://lsjsj92.tistory.com/62

 

제 블로그에서 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'] 키 값으로 접근하죠

이렇게 출력이 될 것입니다!

 

그리고 반대로도 가능해요!

딕셔너리 안에 리스트를 담을 수도 있죠

여기까지 파이썬 딕셔너리 공부였습니다

 

 

 

 

728x90
반응형
0 Comments
댓글쓰기 폼