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

2024-04-26 17:38:57 发布

您现在位置:Python中文网/ 问答频道 /正文

如何为下面的程序设置键和值的限制。我编写了一个python函数来添加键和值。如何限制键的数量=3,值=4。需要忽略3个以上的键和4个添加的值。你知道吗

节目中有没有类似的内容

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)  

Tags: andkeyinselfaddobjsizelen
1条回答
网友
1楼 · 发布于 2024-04-26 17:38:57

要想做你想做的事,你需要使用一个有序的Dict。因为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)

相关问题 更多 >