Python - 처음 시작하는 파이썬 11장 모듈과 패키지 + 연습문제
내용
파이썬 표준 라이브러리
항목 세기 : Counter()
>>> from collections import Counter
>>> breakfast = ['spam', 'spam', 'eggs', 'spam']
>>> breakfast_counter = Counter(breakfast)
>>> breakfast_counter
Counter({'spam': 3, 'eggs': 1})
>>>
most_common() 함수는 모든 요소를 내림차순으로 반환한다. 인자로 숫자를 넘겨주면 숫자만큼 상위 요소 반환.
>>> breakfast_counter.most_common()
[('spam', 3), ('eggs', 1)]
>>>
카운터 결합, 뺄셈, 교집합, 합집합 연산할 수 있다.
>>> lunch = ['eggs', 'eggs', 'bacon']
>>> lunch_counter = Counter(lunch)
>>> lunch_counter
Counter({'eggs': 2, 'bacon': 1})
>>> breakfast_counter + lunch_counter
Counter({'spam': 3, 'eggs': 3, 'bacon': 1})
>>> breakfast_counter - lunch_counter
Counter({'spam': 3})
>>> lunch_counter - breakfast_counter
Counter({'eggs': 1, 'bacon': 1})
>>> lunch_counter & breakfast_counter
Counter({'eggs': 1})
>>> lunch_counter | breakfast_counter
Counter({'spam': 3, 'eggs': 2, 'bacon': 1})
연습문제
11.1
zoo.py 파일에서 ‘Open 9-5 daily’ 문자열을 반환하는 hours() 함수를 정의해보자. 그 다음 대화식 인터프리터에서 zoo 모듈을 임포트한 후 hours() 함수를 호출한다.
zoo.py
def hours():
return 'Open 9-5 daily'
>>> import zoo
>>> zoo.hours()
'Open 9-5 daily'
>>>
11.2
대화식 인터프리터에서 zoo 모듈을 menagerie 라는 이름으로 임포트한 후 hours() 함수를 호출한다.
>>> import zoo as menagerie
>>> menagerie.hours()
'Open 9-5 daily'
>>>
11.3
인터프리터에서 zoo 모듈로부터 직접 hours() 함수를 임포트해서 호출한다.
>>> from zoo import hours
>>> hours()
'Open 9-5 daily'
>>>
11.4
hours() 함수를 info 라는 이름으로 임포트해서 호출한다.
>>> from zoo import hours as info
>>> info()
'Open 9-5 daily'
>>>
11.5
키-값 쌍이 ‘a’:1, ‘b’:2, ‘c’:3 인 plain 딕셔너리를 만들어서 출력한다.
>>> plain = {'a':1, 'b':2, 'c':3}
>>> plain
{'a': 1, 'b': 2, 'c': 3}
11.6
11.5의 plain 딕셔너리에 있는 키-값 쌍으로 fancy라는 OrderedDict를 만들어서 출력한다. plain 딕셔너리와 출력 순서가 같은가? 답 : 같다
>>> from collections import OrderedDict
>>> fancy = OrderedDict(plain)
>>> fancy
OrderedDict([('a', 1), ('b', 2), ('c', 3)])
(3.7 이전버전에서 키 순서를 유지하려 할 때 유용. 3.7부터 디폴트 딕셔너리가 OrderedDict임.)
11.7
dict_of_lists 라는 defaultdict를 만들어서 list 인수를 전달한다. 리스트 dict_of_lists[‘a’]에 something for a’값을 추가하고, dict_of_lists[‘a’]를 출력한다.
>>> from collections import defaultdict
>>> dict_of_lists = defaultdict(list);
>>> dict_of_lists['a']
[]
>>> dict_of_lists['a'] = 'something for a'
>>> dict_of_lists['a']
'something for a'
>>>
댓글남기기