如何为 Python 程序设置键和值的限制

How to set the limit for key and value for the Python Program

如何为以下程序设置键和值的限制。我写了一个 python 函数来添加键和值。如何限制key = 3和values = 4的个数。需要忽略超过3个key和4个value的添加。

程序中有没有类似下面的东西

self.size_key = 3
and self.size_value = 4 or [[] for _ in range(5)] 

示例代码

class my_dict(dict):    
    def add(self, key, value):
        #if len(value) < 4 and len(key) < 3:
            self.setdefault(key, []).append(value)

    def remove_key(self, key):
        del self[key]

    def remove_value(self, key, value):
        if value in self[key]:
            self[key].remove(value)

dict_obj = my_dict()
dict_obj.add('key1', 'value1')
dict_obj.add('key2', 'value9')
dict_obj.add('key1', 'value3')
print(dict_obj)  

要执行您想要的操作,您需要使用 Ordered Dict。因为字典不会在列表之外保留顺序。无法预测哪个密钥将被删除。

这解决了你的问题。

from collections import OrderedDict

class my_dict(OrderedDict):
    def add(self, key, value):
        self.check(key)
        self.setdefault(key, []).append(value)

    def check(self, key):
        if len(self.keys()) == 3:
            del self[next(iter(self))]
        if len(self.get(key, [])) == 4:
            del self[key][0]

dict_obj = my_dict()
dict_obj.add('key1', 'value1')
dict_obj.add('key2', 'value9')
dict_obj.add('key1', 'value3')
dict_obj.add('key1', 'value4')
dict_obj.add('key1', 'value5')
dict_obj.add('key1', 'value6')
dict_obj.add('key3', 'value6')
dict_obj.add('key4', 'value6')
print(dict_obj)