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

时间:2017-06-07 18:17:19

标签: python dictionary data-structures language-agnostic

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

我希望Python collections有类似uniqdict类的内容,如果d[key] = value已经有不同key会引发异常来自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)

问:这种字典/地图/哈希表是否有标准名称

2 个答案:

答案 0 :(得分:1)

这看起来像是Write-once dictionary?

的副本

无论如何,我认为写一次字典是你要找的名字

答案 1 :(得分:0)

我最近有类似的要求,我需要合并两个dicts,但如果他们有任何共同的密钥则会出错。

我认为没有标准名称,所以让我提出一个: no-overwrite dictionary

或许单一更新密钥字典,但这有点难看。

(更简单的替代单一更新字典似乎太误导了。)