1. collections.Counter()
>>> import collections # from collections import Counter
>>> my_list = ['a','z','c','a','f','q','c']
>>> result = collections.Counter(my_list)
>>> result
Counter({'a': 2, 'c': 2, 'z': 1, 'f': 1, 'q': 1})
>>> list(result)
['a', 'z', 'c', 'f', 'q']
>>> my_list2 = ['a','z','z']
>>> result.update(my_list2)
>>> result
Counter({'a': 3, 'z': 3, 'c': 2, 'f': 1, 'q': 1})
>>> list(result.values())
[3, 3, 2, 1, 1]
>>> list(result.items())
[('a', 3), ('z', 3), ('c', 2), ('f', 1), ('q', 1)]
>>> result.most_common()
[[('a', 3), ('z', 3), ('c', 2), ('f', 1), ('q', 1)]
>>> result.most_common(3)
[('a', 3), ('z', 3), ('c', 2)]
collections.Counter()를 이용한 문제풀기
두 List에서 중복된 항목은 빼기. 단 동일한 항목이 2개 있을 경우에는 하나만 빼야 함
list1 = [1,2,2,3,4,5]
list2 = [1,2,3,4,5]
이 경우 결과는 2만 나와야 함
list(set(list1)- set(list2))와 같이 차집합 연산을 이용할 경우 중복을 제외한 후 차집합연산을 하므로 결과가없음
>>> list1 = ['a','c','c','b','d']
>>> list2 = ['b','d','c','a']
>>> collections.Counter(list1)- collections.Counter(list2)
Counter({'c': 1})
>>> list(answer.keys())[0]
'c'
2. collections.OrderedDict()
예전에는 표준 딕셔러리가 입력한 순서를 보장하지 않아 collections 에 OrderedDict가 존재했었다.
파이썬 3.7 이후부터는 표준 딕셔너리도 넣은 순서대로 저장이 되므로 표준 딕셔너리를 쓰면 되겠다
'Tech-Pyhton' 카테고리의 다른 글
[Python] Map, Filter, Zip (0) | 2019.03.27 |
---|---|
[Python] List Comprehension (0) | 2019.03.27 |
[Python] 유용한 파이썬 기능 (0) | 2019.03.10 |
Python 자료형 SORT [List, Tuple, Dictionary] (0) | 2019.03.06 |
[Python] 문자열 함수 (0) | 2019.03.03 |
댓글