每个键都有唯一可能值的字典?
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?
的副本
总之,我认为一次编写的字典就是您要找的名字
我需要创建一个从 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?
的副本总之,我认为一次编写的字典就是您要找的名字