是否有可能以一种必须具有唯一键的方式在python中设计字典,如果错误地添加了已经在字典中的键,则会被拒绝。 感谢
答案 0 :(得分:19)
您随时可以创建自己的词典
class UniqueDict(dict):
def __setitem__(self, key, value):
if key not in self:
dict.__setitem__(self, key, value)
else:
raise KeyError("Key already exists")
答案 1 :(得分:4)
在添加项目之前检查你的词典
if 'k' not in mydict:
mydict.update(myitem)
答案 2 :(得分:1)
这是setdefault的目的:
>>> 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}
这也意味着您可以跳过"如果'键'在dict中:......其他:......"
>>> 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}
答案 3 :(得分:0)
您可以通过从dict
派生并覆盖__setitem__
来拒绝字典中已有的项目来创建自定义词典。