blc*_*llo 26 python search list set find
当你做这样的事情"test" in a哪里a是一个列表并蟒蛇做了顺序搜索在名单上,它创建一个哈希表表示,以优化查询?在我需要这个我会在应用程序的列表上做了很多的查找它,最好的办法是做这样的事情b = set(a),然后"test" in b?另请注意,我将拥有的值列表不会有重复数据,我实际上并不关心它的顺序; 我只需要能够检查是否存在值.
"test" in a
a
b = set(a)
"test" in b
orl*_*rlp 57
另请注意,我将拥有的值列表不会有重复数据,我实际上并不关心它的顺序; 我只需要能够检查是否存在值.
不要使用列表,请set()改用.它具有您想要的属性,包括快速in测试.
set()
in
我已经看到了20倍甚至更高的加速度(大多数是重数字运算),其中一个列表被更改为一组.
Sve*_*ach 9
"test" in a使用列表a将进行线性搜索.动态设置哈希表比线性搜索要昂贵得多. "test" in b另一方面,将执行amoirtisation O(1)哈希查找.
在您描述的情况下,似乎没有理由在集合上使用列表.
归档时间:
14 年,6 月 前
查看次数:
35945 次
最近记录:
9 年,2 月 前