ex1)
votes = {'바게트':['찰수','순이'],'치아비타':['하니','유리']}
key = '브리오슈'
who='단이'
if key in votes:
names=votes[key]
else:
votes[key]=names=[] #이중대입문 대입을 한줄로 처리
names.append(who)
print(votes)
{'바게트': ['찰수', '순이'], '치아비타': ['하니', '유리'], '브리오슈': ['단이']}
ex1-1) 예시1 보다 효과적인 방법
votes = {'바게트':['찰수','순이'],'치아비타':['하니','유리']}
key = '브리오슈'
who='단이'
try:
names = votes[key]
except KeyError:
votes[key] = names = []
names.append(who)
print(votes)
값은 동일하게 나오나 딕셔너리 값이 리스트인경우 KeyError 예외가 발생한다는 사실에 의존할 수 있다. 이 접근 방법을 사용하면 키가 있을때 한번 읽고, 키가 없을 때는 키를 한번 읽고 값을 한번 대입하게 됨 이방법은 in 조건문을 사용하는 경우보다 효율적
if(names := votes.get(key)) is None: # :=변수와 if 문을 동시에 진행
votes[key] = names = []
:) 가독성이 더 좋아짐