데이터 구조 02 대기 열
먼저 나 와. (LIFO: First In First Out)
# -.- coding:utf-8 -.-
from __future__ import print_function
def checker(func):
    def wrapper(self, *args, **kwargs):
        if self.empty():
            return self.items
        return func(self, *args, **kwargs)
    return wrapper
class Queue(object):
    """  :   ,     """
    def __init__(self):
        self.items = []
    def size(self):
        """        ."""
        return len(self.items)
    def empty(self):
        """       : True ;       : False"""
        return not self.size()
    def append(self, item):
        """             ."""
        self.items.append(item)
        return self.items
    @checker
    def peek(self):
        """             ,       ."""
        return self.items[0]
    @checker
    def get(self):
        """             ,       ."""
        return self.items.pop(0)
    def __iter__(self):
        """       """
        return self
    def __next__(self):
        """Python3:      for  """
        if not self.empty():
            return self.get()
        raise StopIteration
    def next(self):
        """Python2:      for  """
        return self.__next__()
    def __str__(self):
        """     print    """
        return "{}".format(self.items)
if __name__ == '__main__':
    #         .
    queue = Queue()
    #            
    queue.append('a')
    queue.append('b')
    queue.append('c')
    queue.append('d')
    queue.append('e')
    #       
    print("      : ", queue)
    #            
    print("           : ", queue.get())
    #       
    print("      : ", queue)
    #       
    for enum, i in enumerate(queue):
        print("   {}   : ".format(enum), i)
    #     
    #       :  ['a', 'b', 'c', 'd', 'e']
    #            :  a
    #       :  ['b', 'c', 'd', 'e']
    #    0   :  b
    #    1   :  c
    #    2   :  d
    #    3   :  e
                이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.