TIL#95 PYTHON setdefault()

dnpxm387·2020년 10월 17일
0

python

목록 보기
41/46
post-thumbnail

깔끔한 파이썬 탄탄한 백엔드 책을 통해 Flask 공부 중에 몰랐던 문법이 있어 찾아보게 되었다. setdefault() 라는 문법인데 딕셔너리에 쓰는 메소드이다. 책에서는 트위터의 팔로우 엔드포인트를 만드는 로직에서 사용이 되었다. user의 정보가 담긴 딕셔너리에 그 user가 팔로우하는 사람들의 id를 저장하게 되는데 그때 setdefault 를 사용하여 저장하게 되고, 중복을 방지하기 위해 list가 아닌 set을 사용한다.

# setdefault 예시

>>> dict = {'a':'note', 'b':'pen', 'c':'pencil'}
# 임의의 딕셔너리 생성

>>> dict.setdefault('c','eraser')
# 'c'의 value 가 존재하면 'c'의 value 출력, 아니면 'c':'eraser' 생성

>>> dict
{'a': 'note', 'b': 'pen', 'c': 'pencil', 'd': 'book'}  # 변화없음

>>> dict.setdefault('e',set())
set()

>>> dict
{'a': 'note', 'b': 'pen', 'c': 'pencil', 'd': 'book', 'e': set()}

>>> dict.setdefault('e',set()).add(3)

>>> dict
{'a': 'note', 'b': 'pen', 'c': 'pencil', 'd': 'book', 'e': {3}}

>>> dict.setdefault('e', set()).add(10)

>>> dict
{'a': 'note', 'b': 'pen', 'c': 'pencil', 'd': 'book', 'e': {10, 5}}

>>> dict.setdefault('e', set()).discard(5)   
# 5 없애기 / 삭제하려는 값이 없으면 오류가 나지 않음. 값이 없으면 무시함

>>> dict
{'a': 'note', 'b': 'pen', 'c': 'pencil', 'd': 'book', 'e': {10}}
profile
개발자꿈나무🌲

0개의 댓글