如果 Python 字典理解覆盖某个键,则会引发错误

2023-12-26

有没有办法让字典理解在覆盖某个键时引发异常?

例如,我希望以下错误,因为键有两个值'a':

>>> {k:v for k, v in ('a1', 'a2', 'b3')}
{'a': '2', 'b': '3'}

我意识到这可以通过for环形。有没有办法在保持理解语法的同时做到这一点?


您可以使用带有辅助函数的生成器:

class DuplicateKeyError(ValueError): pass

def dict_no_dupl(it):
    d = {}
    for k, v in it:
        if k in d: raise DuplicateKeyError(k)
        d[k] = v
    return d

dict_no_dupl((k, v) for k, v in ('a1', 'a2', 'b3'))

这确实添加了一个辅助函数,但保持了理解语法(合理地)完整。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果 Python 字典理解覆盖某个键,则会引发错误 的相关文章

随机推荐