본문 바로가기

IT/Python

[Python] 딕셔너리에 키 값 확인하고 자동으로 값 생성하기

Dictionary에 key를 확인하는 다양한 방법을 알아보고, 
없을 경우 default 값으로 지정하는 방법에 대해 알아 보겠습니다.

0. 샘플딕셔너리 생성하기

우선 샘플 딕셔너리를 생성하도록하겠습니다.

dic = {‘red’:5, ‘blue’:3, ‘green’:’’}
print(dic)

1. key 를 리스트로 확인하기

dic.keys() 
key_list = list(dic.keys())
print(key_list)

if ‘balck’ in key_list:
	print(True)
else:
	print(False)

if ‘black’ not in key_list:
	print(False)

리스트로 변환하지 않고 단순히 dic.keys() 로 실행하면 dict_keys 객체 결과값이 나온다. 따라서 리스트로 변환하여 활용하는 경우가 많다. 
If문을 활용하여 리스트안에 해당하는 값이 있는지 없는지 확인할 수 있으나, list가 클 경우에는 효율적이지 못하다. 

2. get 함수로 키가 있는지 없는지 확인하기

print(dic.get(‘red’)) # 5
print(dic.get(‘black’)) # None 

get 함수를 이용하여 조금 더 효율적으로 확인해보자.  Get함수를 사용하면 key 가 없을 경우 None 값을 반환한다. 

3. key 가 없을 경우 기본값으로 dictionary에 생성하기

dic[‘black’] = dic.get(‘black’,0)

이렇게 처리를 해주면 새로운 key를 default값으로 생성할 수 있다. 이 구문을 반복적으로 사용한다면 함수를 생성하여 사용하는것이 더 효율적이다.

def check_n_create_key(dic, key, default=0):
	val = dic.get(key,0)
	if val:
		pass
	else :
		dic[key] = default 
	
	return dic

dic = check_n_create_key(dic, ‘red’)
print(dic) # {‘red’:5 , ‘blue’:3, ‘green’:’’}
dic = check_n_create_key(dic, ‘black’)
print(dic) # {‘red’:5 , ‘blue’:3, ‘green’:’’, ‘black’:0}
반응형