프로그래밍 언어/Python

[Python] deque 사용법

benjykim 2021. 1. 11. 14:42
반응형

[Python] deque 사용법

deque는 스택과 큐의 기능을 모두 가진 놈이다.

  • deque 생성 예제

    >>> from collections import deque
    # 문자열로 큐 만들기
    >>> q = deque('milhouse')
    >>> q
    deque(['m','i','l','h','o','u','s','e'])
    
    # 빈 큐 만들기
    >>> q1 = deque()
    
    # 원소가 있는 큐 만들기
    >>> q2 = deque([1,2,3])
    
    # 큐 최대 길이 명시하여 큐 만들기
    >>> q3 = deque(maxlen = 5)
    
    >>> q4 = deque([1,2,3], maxlen = 2)
    >>> q4
    deque([2,3], maxlen=2)
    
    # 뒤에 원소를 넣을 경우 앞에서 원소를 빼고 뒤에 새로운 원소를 채워 넣음 (maxlen = 2이기 때문에)
    >>> q4
    deque([2,3], maxlen=2)
    >>> q4.append(4) 
    >>> q4 
    deque([3,4], maxlen=2)
    
    # 앞에 원소를 넣을 경우 뒤에서 원소를 빼고 앞에 새로운 원소를 앞에 채워 넣음 (maxlen = 2이기 때문에)
    >>> q4
    deque([3,4], maxlen=2)
    >>> q4.appendleft(1)
    >>> q4
    deque([1,3], maxlen=2)
  • deque 함수별 동작 예제

    >>> q = deque('true')
    
    # append
    >>> q.append('ben')
    >>> q
    deque(['t','r','u','e','kim'])
    
    # extend
    >>> q.extend('jyk')
    >>> q
    deque(['t','r','u','e','kim','j','y','k'])
    
    # pop
    >>> q.pop()
    'k'
    >>> q
    deque(['t','r','u','e','kim','j','y'])
    
    # appendleft
    >>> q.appendleft('x')
    >>> q
    deque(['x','t','r','u','e','kim','j','y'])
    
    # popleft
    >>> q.popleft()
    'x'
    >>> q
    deque(['t','r','u','e','kim','j','y'])
    
    # extendleft
    >>> q.extendleft('xyz')
    >>> q
    deque(['z','y','x','t','r','u','e','kim','j','y'])
    
    # insert
    >>> q
    deque(['z','y','x','t','r','u','e','kim','j','y'])
    >>> q.insert(0, 'u')
    >>> q
    deque(['u','z','y','x','t','r','u','e','kim','j','y'])
    
    # remove
    >>> q.remove('y')
    >>> q
    deque(['u','z','x','t','r','u','e','kim','j','y']) # 동일한 항목이 있을 경우 왼쪽부터 삭제됨
    >>> q.remove('y')
    >>> q
    deque(['u','z','x','t','r','u','e','kim','j']) 
    
    # reverse
    >>> q.reverse()
    >>> q
    deque(['y', 'j', 'ben', 'e', 'u', 'r', 't', 'x', 'z', 'u'])
    
    # clear
    >>> q.clear()
    >>> q
    deque([])
반응형