코인시던스의 기록

[#11 파이썬 기초] 딕셔너리(dictionary)란? 딕셔너리에 key value 추가, 변경, 삭제 update 하는 방법 본문

파이썬

[#11 파이썬 기초] 딕셔너리(dictionary)란? 딕셔너리에 key value 추가, 변경, 삭제 update 하는 방법

코인시던스 2020. 10. 16. 22:58

오늘은 dictionary 라는 컬렉션에 대해 배워보겠습니다. 파이썬에는 List, Tuple, Dictionary, Set 이렇게 4 가지 컬렉션 타입이 있는데 단언컨데 dictionary 는 파이썬에서 코딩할 때 가장 자주 쓰는 컬렉션 중 하나 입니다.

리스트는 index 를 모르면 원소 개수가 많은 리스트에서 원소를 찾는데 굉장히 오래 걸립니다. 하지만 index 를 알고 있다면 리스트의 길이가 아무리 길더라도 그 index 에 바로 jump 해서 접근할 수 있죠. dictionary 도 마찬가지로 value 를 알고 있다면 원소로 접근하는데 걸리는 시간은 거의 0 이기 때문에 많이 사용합니다.

 

   1. Dictionary 생성 및 특징

- 중괄호 {} 를 사용해서 생성합니다. (참고로 리스트는 대괄호 [], 튜플은 괄호 () 사용) dict 는 dictionary 를 의미합니다.

- 키(key) 와 값(value) 를 갖는 데이터 구조로 key : value pair 를 콜론 (:) 으로 연결합니다. key value pair 사이에는 , 으로 구분해 줍니다.

- 순서가 없습니다. 즉 index 라는 개념이 없습니다. 임의의 내부적인 순서로 출력되긴 하지만 순서를 갖지 않습니다.

dictionary 는 순서가 없습니다. index 를 프린트 하려고 하닌깐 에러가 뜨죠.

- 키(key) 는 내부적으로 hash 값으로 저장합니다. key 값이 index 로 바뀌어서 내부적으로 저장 된다는 뜻인데 List 에서 index 를 알면 리스트의 길이와 관계 없이 원소를 가져오는데 시간이 얼마 걸리지 않는 것처럼 Dictionary 에서 key 를 알면 dictionary 의 원소 개수와 관계없이 key 값을 가져오는 시간이 얼마 걸리지 않습니다.

- key value 를 모두 숫자로 만들어 볼께요. 0 은 키(key) 이고, 인덱스(index) 가 아닙니다. 

0 이라는 key 에 대당하는 value 값이 1 이 출력됩니다.
dictionary 에는 index 라는 순서 개념이 없고, 2 라는 key 를 가지고 있지 않으니 error 가 발생합니다.

 

   2. Dictionary 항목 추가 및 변경(update)

   (1) 항목 추가 

- 딕셔너리에 추가하고자 하는 key 가 존재하지 않을때 dictionary이름[key] = value 를 적으면 새로운 키와 값이 생성됩니다. 아래의 예시를 참조해 주세요.

'Japan'이라는 key 에 'Tokyo' 라는 value 와 'China'라는 key 에 'Beijing' 이라는 value 를 추가했습니다.

 

   (2) 항목 변경

① 딕셔너리에 이미 존재하는 key 에 새로운 value 정의

key 는 딕셔너리(dictionary) 안에서 중복이 되지 않기 때문에 key 에 value 를 하나 더 쓰면  value(값)가 새로 업데이트가 됩니다. value (값) 은 여러번 중복 될 수 있지만 key (키) 는 1개만 가질 수 있습니다.

Japan 이라는 key 에 Tokyo, Kyoto 를 정의했지만 가장 마지막에 정의한 Kyoto 로 업데이트 됩니다.
key 이름을 Japan 이 아닌 Japan2 로 정의하니 새로운 Japan2 : Kyoto 쌍이 생성되었죠?

② update 함수, update() : 두 딕셔너리를 병합합니다.

두 개의 dic 가 있고, 이를 병합하고 싶을 때 update 함수를 이용하면 됩니다. 두 dictionary 간에 겹치는 키가 있다면 parameter 로 전달되는 키의 값이 overwrite 됩니다.

b 라는  dictionary 를 a 라는 dictionary 에 업데이트 :  a dict 에만 있는 key A 는 그대로 있음. b dict 에만 존재한 key C 가 추가됨. a dict, b dict 모두에 있는 key B 는 parameter 로 넘어온 b dict 의 값으로 overwrite 됨

 

   (3) key 삭제

dictionary  에서 key 를 지우는 방법은 2가지가 있습니다.

pop 함수 이용

pop 함수를 이용해 명시한 key value pair 를 삭제할 수 있습니다. b 라는 key 삭제

② del 키워드 사용

- 참고로 del 은 범용적으로 사용할 수 있는 키워드인데 아래 처럼 변수(c) 를 한번 생성하면 노트북 세션 안에서는 계속 살아 있습니다.

- 하지만 del c 를 해주면 c 라는 변수가 이 stack 에서 지워지게 됩니다. undefined 라고 나오죠? 이렇게 del 키워드는 범용적으로 지울 수 있습니다.

 

 

 ③ clear 함수, clear() : 딕셔너리의 모든 값을 초기화할 때 사용합니다.

오늘은 파이썬에서 제일 많이 사용하는 컬렉션 중 하나인 딕셔너리의 정의, 생성/변경/삭제 하는 방법에 대해 알아보았습니다.

Comments