코인시던스의 기록

[#12 파이썬 기초] 딕셔너리(dictionary) 키/값 확인, 딕셔너리와 리스트 차이점, get()함수, keys()함수, values()함수, items()함수 본문

파이썬

[#12 파이썬 기초] 딕셔너리(dictionary) 키/값 확인, 딕셔너리와 리스트 차이점, get()함수, keys()함수, values()함수, items()함수

코인시던스 2020. 10. 21. 22:13

오늘은 딕셔너리(dictionary)의 key 와 value 에 접근하는 방법과 딕셔너리와 리스트의 차이점에 대해 알아보겠습니다.

 

   1. 딕셔너리 내 key 존재 확인

in 키워드 : 딕셔너리 내에 key 가 존재하는지 확인할 때 사용하는 키워드로 dictionary 에서 매우 중요합니다. 딕셔너리 크기와 관계없이 항상 연산의 속도가 일정하기 때문입니다. (아래의 2. 리스트와 딕셔너리의 차이점에서 자세히 설명하고 있습니다.)

'b' in a : b 라고 하는 key(키) 이 a 라는 dictionary(딕셔너리) 에 있는가? 로 True/False 로 output 이 나옵니다.
'd' in a : d 라고 하는 key 이 a 라는 dictionary(딕셔너리) 에 있는가? 로 d 가 a 에 존재하지 않으니 False 가 output 으로 나옵니다.

 

   2. 리스트(List) 와 딕셔너리(Dict) 차이점

List 와 dic 는 기능상으로는 큰 차이가 없으나 성능상으로 차이가 있습니다. 아래의 예시를 보시면 a 라는 딕셔너리(dictionary) 와 리스트(List) 가 있습니다. 둘 다 True 이죠. b 라는 key 가 a 라는 dict 안에 있고, 100 라는 항목도 b 라는 List 에 있으닌깐요. 하지만 리스트(List) 의 in 키워드는 100 이라는 원소를 찾는데 리스트 원소를 다 뒤지기 때문에 원소의 개수가 천만개 백억개로 많아지면 성능저하를 초래합니다. 반면에, dict 의 in 키워드는 딕셔너리에 원소가 한개든 만개든 수십억개든 관계없이 결과를 바로 가져옵니다. dic 는 key 를 찾는데 최적화되어 있는 데이터 구조이기 때문이죠. 

따라서 값과 관계 없이 dict 안에 key 가 있느냐 없느냐를 판단할 때 in 이라는 키워드를 굉장히 많이 사용해서 딕셔너리를 활용합니다.

2 라는 key 가 a 라는 dictionary 에 있는지 확인하기 위해서 in 키워드를 활용 했더니 False 로 나오죠? 2 라는 키는 a 라는 딕셔너리에 없음을 알 수 있습니다.

   3. Dictionary Value Access (딕셔너리 값 찾는 방법)

딕셔너리(dictionary) 에서 값(value) 을 구하는 방법에는 2가지가 있습니다.

   ① dict[key] 으로 접근

dictionary 이름 + 대괄호[] 안 key 를 넣어주면 key 에 대응하는 값이 output 으로 나옵니다.

a['b'] 와 같이 딕셔너리이름, 대괄호, ' key 를 넣어줍니다.

 

하지만 딕셔너리(dictionary) 에 키(key)가 없는 경우 에러가 발생하는데요. 에러를 싫어하시는 분들은 아래의 두번째 방법을 이용해 주시면 됩니다.

a 라는 dictionary 에 'd' 라는 key 가 존재하지 않아 error 가 발생합니다.

   ② .get() 함수 로 접근

- dictionary 이름 + . + get + 괄호 key 를 넣어주면 됩니다.

 - get 함수를 이용하면 딕셔너리에 key 가 없는 경우Error 가 발생하지 않고 None 을 반환시킵니다. 프로그램이 죽지 않죠.

- get 함수를 사용해서 key 를 주면 프로그래밍이 죽지 않으니 습관적으로 get 함수를 사용해 key 를 가져오는 것이 좋습니다. 프로그래밍을 조금 더 방어적으로 할 수 있죠.

※ key 가 없을 때 프로그래밍을 죽이지 않는 방법으로 if 문을 사용할 수도 있는데 나중에 if 문을 배우면 자세히 다뤄보도록 하겠습니다.

d 라는 key 가 a 라는 dictionary 에 있는 경우에만 출력을 할 수 있으며, 없을 경우에도 error 가 뜨지 않습니다.
b 라는 key 가 a 라는 dictionary 에 있어 b 에 대응하는 2 가 출력됩니다.

 

   4. key, value Access(찾기)

딕셔너리(dictionary) 의 키(key) 와 값(value) 을 확인하는 방법에 대해 알아보겠습니다.

keys() - 모든 키 반환  ② values() - 모든 값 반환  ③ items() - 키, 값의 튜플을 반환

 

- dict 에서 모든 key 를 가지고 오고 싶으면 keys() 함수를, 모든 value 를 가지고 오고 싶으면 values 함수를 사용하면 됩니다.

- keys 와 values 를 리스트(List) 타입으로 변환시켜서 사용할 수 있습니다.

- key 와 value 를 동시에 list 화 하고 싶을 때는 items() 함수를 사용하면 됩니다.

items() 함수를 사용하면 key value 튜플로 된 리스트를 반환시킵니다.

 

for, while 루프를 배운 다음  items, keys, values 함수를 다시 다뤄보도록 하겠습니다.

Comments