在Python中,是否有可能设计一个字典,如果错误地添加了一个已经存在于字典中的键,则该键会被拒绝?
谢谢。在Python中,是否有可能设计一个字典,如果错误地添加了一个已经存在于字典中的键,则该键会被拒绝?
谢谢。你可以随时创建自己的字典。
class UniqueDict(dict):
def __setitem__(self, key, value):
if key not in self:
dict.__setitem__(self, key, value)
else:
raise KeyError("Key already exists")
__init__
方法仅用相同的参数调用父级__init__
方法时,实际上并不需要该方法。 - Lauritz V. Thaulow在添加项目之前,请检查您的字典
if 'k' not in mydict:
mydict.update(myitem)
if 'k' not in mydict
,不需要加上 .keys()
:) - mouad.keys()
...这是一种极大的资源浪费。 - John Machin>>> x = {}
>>> print x.setdefault.__doc__
D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
>>> x.setdefault('a', 5)
5
>>> x
{'a': 5}
>>> x.setdefault('a', 10)
5
>>> x
{'a': 5}
>>> for val in range(10):
... x.setdefault('total', 0)
... x['total']+=val
...
0
0
1
3
6
10
15
21
28
36
>>> x
{'a': 5, 'total': 45}
您可以通过从 dict
派生并覆盖 __setitem__
来拒绝已经存在于字典中的项从而创建自定义字典。