gpt4 book ai didi

python - 有什么理由使用 dict 而不是 defaultdict 吗?

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:47 26 4
gpt4 key购买 nike

标题说明了一切:

是否有任何理由使用 dict 而不是 defaultdict ?

我能想到的唯一理由就是“我真的不需要”。但是然后我会问是否有任何理由不将 dict 替换为 defaultdict。

可能的原因可能是:

  • 性能下降
  • 测试

但我不认为性能损失如此严重,因为您只需要检查是否已经存在一个新值,该值在 O(1) 中摊销。

我也想不出测试可能变得更加困难的例子。 (不过我不是很有经验)

最佳答案

使用defaultdict的原因有很多:

  • 如果您的值不是同质的,因此无法通过简单的工厂函数生成。
  • 如果您需要缺少键来引发异常,而不是自动为您创建新值。
  • 如果您所有的默认值都需要比工厂函数接收到的更多的上下文;例如,工厂函数无权访问正在插入的 key 。

defaultdict 填充一个专门的用例,您希望在缺少键时为您自动创建值,并且可以使用工厂功能,无需访问正在插入的 key 。

请注意,异常只是用来标记程序员的错误。异常是 Python 语言的一个非常强大的部分,其用途远不止编码错误。如果您的数据通常不需要新 key ,那么使用异常处理(请求宽恕)比每次都测试 key (请求许可)更快。

参见 Python Forgiveness vs. Permission and Duck Typing在 Progammers 上进行比较。

关于python - 有什么理由使用 dict 而不是 defaultdict 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19666783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com