세로형
Link
12-09 18:03
«   2021/12   »
      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 31  
Archives
Today
1,677
Total
1,978,602
관리 메뉴

꿈 많은 사람의 이야기

파이썬(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( )함수를 단독으로도 쓸 수 있어요

300x250

단독으로 쓰면 당연히 값은 1개씩 반환(key 또는 value)되니까 for문의 값도 1개죠

 

배열과 응용도 가능합니다.

lee, jin이라는 값을 갖는 fri를 이용해서 진행해보죠

 

배열 안에 값이 있는지 조건 체크를 하려면 if ~ in 문장을 쓰면 쉽게 가능합니다

keys( )만큼 반복을 돌면서 해당 키 값이 배열안에 있으면 있다고 나오고, 없으면 없다고 나옵니다.

 

 

위 사진 처럼 출력이 됩니다!

 

그리고 배열(리스트)안에 딕셔너리를 담을 수도 있습니다.

이렇게요!

프로그래밍이 익숙하지 않으신 분들은 햇갈릴 수도 있는 구조입니다.

value1의 [0]번 인덱스에는 red 색상과 5살, [1]번 인덱스에는 blue 색상과 10살 등 이렇게 값이 들어가 있는 구조입니다.

 

 

위 사진을 보면 0번 인덱스부터 2번 인덱스까지 출력된 것을 볼 수 있습니다.

그러면 각 인덱스 안에 있는 딕셔너리 값에 어떻게 접근할까요?

아래처럼 접근합니다!

value1 배열의 길이만큼 for문을 돌면서 해당되는 인덱스 i 값의 ['color'] 키 값으로 접근하죠

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

 

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

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

 

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

 

 

 

 

반응형
그리드형
0 Comments
댓글쓰기 폼