본문 바로가기
파이썬/기초 문법

[파이썬]딕셔너리 함수들 - keys, values, items, clear, get, in

by 코키드 Cokid 2022. 10. 3.
반응형

이번 포스팅에서는 딕셔너리 관련 함수들에 대해 포스팅한다.

딕셔너리의 키 값들을 반환하는 keys, value값들을 반환하는 values, 키와 value 쌍을 반환하는 items, 딕셔너리의 모든 값을 지우는 clear, key를 통해 value를 얻는 get, 요소값이 딕셔너리에 있는지 확인하는 in 함수를 알아볼 것이다.

딕셔너리의 Key, Value 값 얻기 - keys, values, items

keys 함수로 딕셔너리의 key 값 얻기

>>> dic = {'Soccer': 'Jisung Park', 'Baseball': 'Chanho Park', 'Golf': 'Seri Park'}
>>> dic.keys() # 딕셔너리의 키 값들을 dict_keys 자료형으로 반환
dict_keys(['Soccer', 'Baseball', 'Golf'])
>>> type(dic.keys()) # dic.keys()의 자료형 확인
<class 'dict_keys'>

keys 함수는 변수명.keys() 형태로 사용하는데 딕셔너리의 키 값들을 dict_keys 자료형으로 반환한다. 파이썬 3.0 버전 이전에는 리스트의 형태로 반환을 했는데 리스트로 반환하는 과정에서 메모리 낭비가 발생해서 3.0버전 이후부터는 dict_keys 형태로 반환한다고 한다.

 

>>> list(dic.keys()) # dic.keys()를 리스트 형태로 전환
['Soccer', 'Baseball', 'Golf']

>>> for i in dic.keys(): # 리스트로 전환하지 않아도 반복문에서 사용 가능
...     print(i)
... 
Soccer
Baseball
Golf

리스트 형태로 키 값들을 사용해야 한다면 list(dic.keys())처럼 형 변환을 하여 사용할 수 있다.

하지만 반복문에 사용하기 위해 리스트로 변환을 시도한다면 굳이 그럴 필요가 없다.

dict_keys 형태에서 리스트로 전환하지 않아도 반복문에서 사용할 수 있기 때문이다.

 

values 함수로 딕셔너리의 value 값 얻기

>>> dic.values() # values 함수로 딕셔너리의 value값 얻기
dict_values(['Jisung Park', 'Chanho Park', 'Seri Park'])
>>> type(dic.values()) # dic.values() 자료형 확인
<class 'dict_values'>

keys 함수 동일한 방법으로 values 함수를 통해 딕셔너리의 value값들을 얻을 수 있다. 자료형은 dict_values이다.

마찬가지로 list()로 형변환을 하여 리스트 형태로 얻을 수 있다.

 

items 함수로 딕셔너리의 key, value 값 모두 얻기

>>> dic.items() # items 함수로 key&value쌍 얻기
dict_items([('Soccer', 'Jisung Park'), ('Baseball', 'Chanho Park'), ('Golf', 'Seri Park')])
>>> type(dic.items()) # dic.items() 자료형 확인
<class 'dict_items'>

items 함수로 key와 value 값을 동시에 얻을 수 있다.

 

>>> for i in dic.items(): # 리스트이 요소값으로 튜플을 가짐
...     print(i)
...
('Soccer', 'Jisung Park')
('Baseball', 'Chanho Park')
('Golf', 'Seri Park')

dict_items 자료형도 리스트처럼 바로 반복문에 사용할 수 있다. 위 예문에서 dic.items()의 요소값이 (key, value)로 이루어진 튜플인 것을 확인할 수 있다.

 

딕셔너리의 모든 값 삭제 - clear

clear 함수로 딕셔너리의 모든 key, value 쌍 삭제하기

dic = {'Soccer': 'Jisung Park', 'Baseball': 'Chanho Park', 'Golf': 'Seri Park'}

>>> dic.clear() # 딕셔너리의 모든 key, value 삭제, 빈 딕셔너리 반환
>>> dic
{}

딕셔너리의 모든 key, value 쌍을 삭제하고 싶다면 clear 함수를 사용할 수 있다. clear 함수 적용 이후에는 딕셔너리 해당 딕셔너리가 빈 딕셔너리가 된 것을 볼 수 있다.

 

key로 value 얻기 & 해당 key 존재 확인 - get, in

get 함수를 통해 key 값으로 value 값 얻기

>>> dic = {'Soccer': 'Jisung Park', 'Baseball': 'Chanho Park', 'Golf': 'Seri Park'}

>>> dic.get('Soccer') # 'Soccer' key에 대한 value 반환
'Jisung Park'

>>> print(dic.get('Marathon')) # 딕셔너리에 해당 key 없을 시 None 반환
None

get 함수의 괄호에 key를 입력하면 해당 value를 얻을 수 있다. 하지만 위의 마지막 예문처럼 딕셔너리에 해당 key가 존재하지 않으면 None을 반환한다.

None은 Null 값이거나 사용할 수 없는 값을 말하는데 False랑 비슷한 것이라고 생각하고 일단 넘어가자.

 

>>> dic.get('Marathon', 'no key') # 'Marathon' key가 없을 경우 'no key' 출력
'no key'

>>> dic.get('Basektball', 'no key')  # 'Basketball' key가 없을 경우 'no key' 출력
'no key'

get함수를 사용했을 때 key값이 없을 경우 None을 출력하지만 get('key', 'key가 없을 경우 출력값') 형태로 해당 key가 없을 경우 출력되는 값을 미리 정해놓을 수가 있다.

위 예문에서 'Marthon'과 'Basketball'이라는 key가 딕셔너리에 존재하지 않기 때문에 모두 'no key'를 반환한다.

 

in 함수를 통해 해당 key가 딕셔너리에 있는지 확인하기

>>> dic = {'Soccer': 'Jisung Park', 'Baseball': 'Chanho Park', 'Golf': 'Seri Park'}

>>> 'Soccer' in dic # key 'Soccer'가 딕셔너리에 있는지 확인
True
>>> 'Golf' in dic # key 'Soccer'가 딕셔너리에 있는지 확인
True
>>> 'Marathon' in dic # key 'Soccer'가 딕셔너리에 있는지 확인, 없으면 False 반환
False

위 예문처럼 in 함수를 통해 해당 key가 딕셔너리에 있는지 확인할 수 있다. 해당 키가 있다면 True를 없다면 False를 반환한다.

사실 in 함수가 딕셔너리에만 쓰이는 것은 아니다. 튜플이나 리스트, 문자열 같은 sequence 타입의 자료형에서 모두 in 함수를 쓸 수 있다.

 

>>> in_str = 'Cokid'
>>> 'o' in in_str # 'O'가 문자열 'Cokid'에 있는지 확인
True

>>> in_list = [1, 2, 3] # 1이 리스트 [1, 2, 3]에 있는지 확인
>>> 1 in in_list
True

>>> in_tuple = (4, 5, 6) # 1이 튜플 (4, 5, 6)에 있는지 확인, 없으면 False 반환
>>> 1 in in_tuple
False

위 코드에서 다른 자료형에서 in이 사용되는 모습을 확인해보자.

 

 

 

 

2022.10.02 - [파이썬/기초 문법] - [Python]딕셔너리(dictionary) 만들기, 요소값 추가&수정&삭제, key로 value 얻기

반응형

댓글