Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python在单词集检查包中_Python_Performance - Fatal编程技术网

Python在单词集检查包中

Python在单词集检查包中,python,performance,Python,Performance,我有一个文本处理脚本,需要检查单词是否在单词包中。我必须做这件事无数次。我认为最有效的方法是定义我正在检查的wordBag=set['this','are','my','words']的单词集,然后如果wordBag中的单词:,则执行此操作。我查看了文档,这是平均情况O1和最坏情况O1。这仅仅是因为hashset中的链接吗?有没有一种更像python的方法呢?这真的取决于你的单词集的大小。对于任何可能高达数万的非巨量,您的方法绝对是好的,完全是python式的。简单是一种美德 如果您的包中有大量

我有一个文本处理脚本,需要检查单词是否在单词包中。我必须做这件事无数次。我认为最有效的方法是定义我正在检查的wordBag=set['this','are','my','words']的单词集,然后如果wordBag中的单词:,则执行此操作。我查看了文档,这是平均情况O1和最坏情况O1。这仅仅是因为hashset中的链接吗?有没有一种更像python的方法呢?

这真的取决于你的单词集的大小。对于任何可能高达数万的非巨量,您的方法绝对是好的,完全是python式的。简单是一种美德

如果您的包中有大量的单词,那么使用或trie方法可能是最好的,因为您可以检查PyPI的现有实现


编辑:最坏的情况只有在您怀疑的大量散列冲突的情况下才会发生,但这在实践中通常不是问题。在任何情况下,我都会首先使用最简单的方法,如果您确实存在性能或内存问题,我只会查看更高级的解决方案。

您是对的。最佳情况:O1->无碰撞。最坏的情况:On->所有条目散列到同一位置,并且您遵循n个链。