티스토리 뷰

728x90
반응형

"Python Cookbook"을 공부하여 개인적으로 유용하게 쓸 내용을 기록했습니다.

 

임의 순환체의 요소 나누기


별표 구문은 길이가 일정하지 않은 튜플에 사용하면 상당히 편리하다.

records = [
    ('foo', 1, 2),
    ('bar', 'hello'),
    ('foo', 3, 4),
]

def do_foo(x, y) :
    print('foo', x, y)

def do_bar(s) :
    print('bar', s)

for tag, *args in records:
    if tag == 'foo':
        do_foo(*args)
    elif tag == 'bar':
        do_bar(*args)
    

 

 

collections.deque


collections 모듈은 Python의 범용 내장 컨테이너, dict, list, set 및 tuple에 대한 대안을 제공하는 특수 컨테이너 데이터 유형을 구현한다.

아래는 파이썬 공식 문서

https://docs.python.org/ko/3.7/library/collections.html

 

collections --- Container datatypes — Python 3.7.4rc1 문서

collections --- Container datatypes Source code: Lib/collections/__init__.py This module implements specialized container datatypes providing alternatives to Python's general purpose built-in containers, dict, list, set, and tuple. namedtuple() factory fun

docs.python.org

 

마지막 N개의 아이템을 유지하기 위해 앞의 아이템들을 삭제하는 연산이 필요한 경우 list를 이용하기 보다 큐를 이용하는 것이 훨씬 빠르다.

deque(maxlen=N)은 고정 크기의 큐를 생성해, 큐가 꽉찬 상태에서 새로운 아이템을 넣으면 가장 마지막 아이템이 자동으로 삭제된다.

 

최대 크기를 지정하지 않으면 일반적인 큐 구조체로 사용할 수 있다.

728x90
반응형
댓글