作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
许多算法任务输入包括不同形式的重复分析。在这种情况下,set() 是对数据结构的极好建议。
假设输入数据包含大量重复项。有两种方法可以将它们添加到最终的唯一值集中:
my_set.add(x)
并让 Python 来完成这项工作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/
我是一名优秀的程序员,十分优秀!