如何强制python中的字典只有唯一键?

Hos*_*ein 7 python dictionary

是否有可能以一种必须具有唯一键的方式在python中设计字典,如果错误地添加了已经在字典中的键,则会被拒绝.谢谢

Jak*_*yer 20

您始终可以创建自己的字典

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

  • 请注意,除了使用相同的参数调用父`__init__`之外什么都不做,实际上并不需要`__init__`方法. (10认同)
  • 当它们被传递给构造函数时,这仍然会吞下重复的键,例如, UniqueDict([('a',1),('a',1)]) 返回 {'a': 1} (3认同)

Gev*_*ous 5

在添加项目之前检查你的字典

if 'k' not in mydict:
    mydict.update(myitem)
Run Code Online (Sandbox Code Playgroud)