如何限制字典的大小?

发布于 2021-01-29 15:11:12

我想在python中使用字典,但是将键/值对的数量限制为X。换句话说,如果dict当前正在存储X个键/值对,并且我要执行插入操作,则我希望现有的配对将被删除。如果它是最近最少插入/访问的键,那将是很好的,但这不是完全必要的。

如果标准库中存在此文件,请为我节省一些时间并指出!

关注者
0
被浏览
41
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    Python
    2.7和3.1具有OrderedDict,并且有用于早期Python的纯Python实现。

    from collections import OrderedDict
    
    class LimitedSizeDict(OrderedDict):
        def __init__(self, *args, **kwds):
            self.size_limit = kwds.pop("size_limit", None)
            OrderedDict.__init__(self, *args, **kwds)
            self._check_size_limit()
    
        def __setitem__(self, key, value):
            OrderedDict.__setitem__(self, key, value)
            self._check_size_limit()
    
        def _check_size_limit(self):
            if self.size_limit is not None:
                while len(self) > self.size_limit:
                    self.popitem(last=False)
    

    您还必须重写其他可以插入项目的方法,例如update。的主要用途OrderedDict是,您可以控制容易弹出的内容,否则可以正常dict使用。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看