collections

from collections import namedtuple
from collections import deque
from collections import OrderedDict


def nametuple_example():
    Person = namedtuple("hahaha", "name, age, gender")
    alice = Person(name="alice", age=30, gender="female")
    print(alice.name, alice.age, alice.gender)
    print(type(alice))


def deque_example():
    q = deque("abc")
    print(q)
    q.appendleft("123")
    print(q)
    q.append("e")
    print(q)
    q.pop()
    print(q)


def orderdict_example():
    ord = OrderedDict()
    ord['a'] = 'a'
    ord['b'] = 'b'
    ord['c'] = 'c'
    print(ord)
    ord.popitem(last=False)
    print(ord)
    ord['d'] = 'd'
    print(ord)
    ord.popitem(last=True)
    print(ord)


class LRUCache:
    def __init__(self, capacity=10):
        self.ord = OrderedDict()
        self.capacity = capacity

    def get(self, key):
        if key in self.ord:
            value = self.ord[key]
            self.ord.move_to_end(key)
            return value
        else:
            return -1

    def put(self, key, value):
        if key in self.ord:
            del self.ord[key]
            self.ord[key] = value
        else:
            self.ord[key] = value
            if len(self.ord) > self.capacity:
                self.ord.popitem(last=False)

    def show(self):
        print(self.ord)


def LRUCache_example():
    lrucache = LRUCache(capacity=3)
    lrucache.put(key='a', value='a')
    lrucache.put(key='b', value='b')
    lrucache.put(key='c', value='c')
    lrucache.put(key='a', value='a')
    lrucache.put(key='d', value='d')
    lrucache.put(key='e', value='e')
    lrucache.show()


if __name__ == "__main__":
    nametuple_example()
    deque_example()
    orderdict_example()
    LRUCache_example()

console output

alice 30 female
<class '__main__.hahaha'>
deque(['a', 'b', 'c'])
deque(['123', 'a', 'b', 'c'])
deque(['123', 'a', 'b', 'c', 'e'])
deque(['123', 'a', 'b', 'c'])
OrderedDict([('a', 'a'), ('b', 'b'), ('c', 'c')])
OrderedDict([('b', 'b'), ('c', 'c')])
OrderedDict([('b', 'b'), ('c', 'c'), ('d', 'd')])
OrderedDict([('b', 'b'), ('c', 'c')])
OrderedDict([('a', 'a'), ('d', 'd'), ('e', 'e')])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值