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'
>>>

태그:

업데이트:

댓글남기기