每个键都有唯一可能值的字典?

A dictionary with a unique possible value for each key?

我需要创建一个从 Twitter 状态 ID 到作者 ID 的映射。 显然,每个状态只有一个作者。

我希望 Python collections 有类似 uniqdict class 的内容,如果 key 已经有一个值 [=],d[key] = value 将引发异常23=]与 value 不同:

class uniqdict(dict):
    def __setitem__(self,key,value):
        try:
            old = super(uniqdict,self).__getitem__(key)
            if old != value:
                raise ValueError(self.__class__.__name__,key,old,value)
        except KeyError:
            super(uniqdict,self).__setitem__(key,value)

问:这种dictionary/map/hashtable有标准名称吗?

我最近有一个类似的需求,我需要合并两个字典,但如果它们有任何共同的键,那就是一个错误。

我认为没有标准名称,所以让我提出一个:无覆盖字典

或者单更新键字典,但这有点难看。

(更简单的选择 单更新字典 似乎太具有误导性。)

这看起来像是 Write-once dictionary?

的副本

总之,我认为一次编写的字典就是您要找的名字