gpt4 book ai didi

python - Python 中 set.discard 和 set.remove 方法之间的运行时差异?

转载 作者:太空狗 更新时间:2023-10-29 20:37:07 25 4
gpt4 key购买 nike

official Python 2.7 docs这些方法听起来几乎相同,唯一的区别似乎是 remove() 会引发 KeyError 而 discard 不会。

我想知道这两种方法的执行速度是否存在差异。如果做不到这一点,它们之间是否存在任何有意义的差异(除了 KeyError)?

最佳答案

在一种情况下引发异常是一个非常有意义的区别。如果尝试从不存在的集合中删除元素会出错,您最好使用 set.remove()而不是 set.discard() .

这两种方法在实现上是相同的,除了与 set_discard() 相比。 set_remove() function添加行:

if (rv == DISCARD_NOTFOUND) {
set_key_error(key);
return NULL;
}

这引发了 KeyError .因为这是稍微多一点的工作,set.remove()是最慢的teeniest分数;您的 CPU 在返回之前必须进行一项额外的测试。但是,如果您的算法依赖于异常,那么额外的分支测试几乎无关紧要。

关于python - Python 中 set.discard 和 set.remove 方法之间的运行时差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27850073/

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