Python
[Python] Dictonary 관련 함수 - setdefault, defaultdict, counter
Gom Guard
2018. 1. 1. 09:00
반응형
dict 구성하는 방법 - 기본
s= ['a', 'b', 'c', 'b', 'a', 'b', 'c']dic = {}for i in s:if i not in dic.keys():dic[i] = 0dic[i] +=1print(dic)
기본적으로 dic 을 구성하기 위해선 key 마다 기본값들을 정해준 뒤에야 연산이 가능합니다. 그래서 dic 을 사용하기 위해서는 초기화를 해주는 과정이 필요합니다. 하지만 python 에는 dict 을 더 쉽게 사용하기 위해 제공하는 여러 메소드들이 있습니다. 대표적인 함수들은 setdefault, defaultdict 입니다.
dict 구성하는 방법 - setdefault
s= ['a', 'b', 'c', 'b', 'a', 'b', 'c']d= {}for k in s:d.setdefault(k,0)d[k]+=1print(list(d.itemes())
setdefault 는 키값과 값 하나를 인자로 받는 dict 의 매소드 입니다. setdefault 는 키값이 있다면 키값을 반환하고 없다면 두 번째 인자를 반환합니다.
setdefault 과정은 다음과 같습니다. 키값이 없으면 키값에 0을 넣고 만약 있으면 키값을 반환하는 과정입니다.
dict 구성하는 방법 - defaultdict
import collectionss= ['a', 'b', 'c', 'b', 'a', 'b', 'c']d = collections.defaultdict(int)for k in s:d[k] += 1print(d)print(dict(d))
defaultdict 은 말 그대로 dictionary 의 기본값을 정의하고 값이 없을 경우 에러를 출력하지 않고 기본값을 출력합니다. setdefault 보다 빠른 것이 장점입니다.
collections.defaultdict(int) 에서 int 자리에는 list 혹은 다른 object 형태들로 지정가능합니다.
참고 메소드 - counter
import collectionss= ['a', 'b', 'c', 'b', 'a', 'b', 'c']c = collections.Counter(s)print(c)
counter 함수는 리스트의 인자들이 각각 몇 개씩 존재하는지 카운트해서 dict 형태로 반환해주는 함수 입니다.
부족한 블로그에 방문해 주셔서 감사합니다.
잘못된 부분이나 질문이 있으시면
댓글로 말씀해주세요.
금방 확인하고 피드백 드리겠습니다.
좋은 하루 되세요. ^^
반응형