zoukankan      html  css  js  c++  java
  • python 手写队列

    #encoding=utf8
    class MQueue:
        def __init__(self):
            self.data = []
    
        def get(self):
            if self.data.__len__()>0:
                return self.data.pop()
            else:
                return None
    
        def put(self, item):
            if not self.isExist(item):
                self.data.insert(0, item)
    
        def remove(self, obj, attr='name'):#移除某个属性等于obj的所有对象
            while -1 != self.indexOf(obj):
                self.data.pop(self.indexOf(obj))
    
        def size(self):
            return self.data.__len__()
    
        def isEmpty(self):
            return 0 == self.data.__len__()
    
        def indexOf(self, obj, attr='name'):#查询对象indexOf(obj),查询元素indexOf(obj.str,obj.attr)
            isDict = isinstance(obj, dict)
            for i in range(self.data.__len__()):
                if (isDict and self.data[i] == obj) or (not isDict and obj == self.data[i][attr]):
                    return i
            return -1
    
        def isExist(self, obj):
            return not -1 == self.indexOf(obj)
    
        def getData(self):
            return self.data
    
    if __name__ == '__main__':
        q = MQueue()
        q.put({'name': '路人甲'})
        q.put({'name': '路人1'})
        q.put({'name': '路人2'})
        q.put({'name': '路人3'})
        q.put({'name': '路人甲'})
        print(q.size())
        q.remove('路人甲')
        print(q.size())
        print(q.isExist('路人1'))
  • 相关阅读:
    读入输出优化
    码表
    windows下bat批处理实现守护进程(有日志)
    cmd批处理常用符号详解
    批处理之 for/f 详解
    WINDOWS XP中用命令行管理用户 net user命令
    VacmMIB
    工作遇到
    snmp之GenericAddress
    snmp4j 之 ArgumentParser
  • 原文地址:https://www.cnblogs.com/lurenjia1994/p/9604987.html
Copyright © 2011-2022 走看看