주요 연산 시간 복잡도
len(a) : O(1) 요소의 개수를 리턴한다. = 키 개수
a[key] : O(1) 키 조회하여 값 리턴
a[key] = value : O(1) 키/값을 삽입
key in a : O(1) 딕셔너리에 키가 있는지 확인
대부분의 연산이 O(1)에 처리 가능한 매우 우수한 자료형!!
a=collectoins.defaultdict(int) #value의 형태
a['A']=5
a['B']=4
a
>>defaultdict(<class 'int'>, {'A': 5, 'B': 4})
여기서 존재하지 않는 키 C를 넣어본다.
a['C']+=1
a
>>defaultdict(<class 'int'>, {'A': 5, 'B': 4, 'C':1})
KEY ERROR가 발생하지 않고 디폴트 0 을 기준으로 자동 생성 + 1
a= [1,2,3,4,5,5,5,6,6]
b= collections.Counter(a)
b
>> Counter({5:3, 6:2, 1:1, 2:1 ,3:1, 4:1}) #개수 순 내림차순, 개수 동일시 순서순
키 = 아이템 value, 값 = 해당 아이템의 개수. b는 collections.Counter 클래스 가짐
b.most_common(2)
>>[(5,3),(6,2)]
최빈값 찾으려면 most_common() 사용하면 된다. 2개 이상 추출하면 리스트 안 튜플 형태로 리턴
a = Counter({'k':3,'j':1})
a = Counter({'k':2,'r':1})
a+b = Counter({'k':5,'j':1,'r':1})
a-b = Counter({'k':1,'j':1}) # 차집합 느낌
a&b = Counter({"k":2}) #교집합
a|b = Counter({'k':3,'j':1,'r':1}) #합집합