python - 需要 python 字典像双端队列一样(具有最大长度)

标签 python python-3.6

是否有任何内置(或非常简单)的方法让 python 字典以与双端队列类似的方式工作。

我需要它有一个最大长度,当添加新键时,如果达到最大长度,那么首先添加的键将被删除。作为自定义类实现应该不会太困难,但始终首选使用内置函数。

如果有任何帮助,我正在使用 Python 3.6。

最佳答案

这听起来像是 OrderedDict 的变体。

class FixSizeOrderedDict(OrderedDict):
    def __init__(self, *args, max=0, **kwargs):
        self._max = max
        super().__init__(*args, **kwargs)

    def __setitem__(self, key, value):
        OrderedDict.__setitem__(self, key, value)
        if self._max > 0:
            if len(self) > self._max:
                self.popitem(False)

关于python - 需要 python 字典像双端队列一样(具有最大长度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49274177/

相关文章:

python - 如何在 Python/Pandas 中找到给定约束下的最大值

python - 如何将枚举名称用作其他信息的值

python - asyncio.iscoroutinefunction 为异步生成器返回 False

python - NLTK 文本生成()。使用不同的 ngram 模型执行此操作

python安装找不到psycopg2 ImportError

python - sqlalchemy有时取不到数据

python - 从 Anaconda 缩小到 Miniconda

python - 在 Python 3.6 中运行时根据 Union 类型检查变量

python - Selenium 在 Python 中不起作用

python - Heroku 和 Django : No default language could be detected for this app