gpt4 book ai didi

python - set.add(x) 与集合 : What is faster? 中的 x

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:49:14 25 4
gpt4 key购买 nike

许多算法任务输入包括不同形式的重复分析。在这种情况下,set() 是对数据结构的极好建议。

假设输入数据包含大量重复项。有两种方法可以将它们添加到最终的唯一值集中:

  1. 只需添加:my_set.add(x) 并让 Python 来完成这项工作
  2. 检查是否存在,如果不存在则添加:
if x not in my_set:
my_set.add(x)

哪个更快?要求 python 散列新值并重新添加(如果存在)或明确检查是否存在?或者也许 python 做了一些聪明的事情,每次调用 .add() 时它都会隐式地进行此检查?

最佳答案

x.add(set)x not in set 都必须计算 x 的哈希值,并且 (a) 检查是否散列存在 (b) 如果存在,检查 x 是否在相应的桶中。合理的是,如果检查成功,任何 add 的实现都会立即退出,这相当于手动执行检查,但速度要快得多。

关于python - set.add(x) 与集合 : What is faster? 中的 x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58646451/

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