如何为 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)
如何为以下程序设置键和值的限制。我写了一个 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)