如何强制python中的词典拒绝现有密钥的更新?

2024-04-19 03:13:35 发布

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

在Python中设计一个字典,如果错误地添加了字典中已经存在的一个键,那么它会被拒绝吗? 谢谢


Tags: 字典错误
3条回答

您可以随时创建自己的词典

class UniqueDict(dict):
    def __setitem__(self, key, value):
        if key not in self:
            dict.__setitem__(self, key, value)
        else:
            raise KeyError("Key already exists")

在添加项目之前,只需检查您的dict即可

if 'k' not in mydict:
    mydict.update(myitem)

这就是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中的“if'key:…else:…”

>>> 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}

相关问题 更多 >