比较Python中2个字符串的最有效方法是什么

时间:2019-07-16 14:23:10

标签: python python-3.x performance

我正在寻找比较两个字符串的最有效方法,但不确定哪个更好:==in。还是有其他方法可以比这两种方法更有效?

编辑:我正在尝试检查是否相等

3 个答案:

答案 0 :(得分:4)

他们做不同的事情。

==测试是否相等:

"tomato" == "tomato"  # true
"potato" == "tomato"  # false
"mat"    == "tomato"  # false

in测试 substring ,并且可以被认为是str.find() != -1的(可能)更有效的版本):

"tomato" in "tomato"  # true
"potato" in "tomato"  # false
"mat"    in "tomato"  # true  <-- this is different than above

在两种情况下,它们都是执行工作的最有效方法。如果使用它们比较两个字符串是否实际上相等,那么strA == strB当然比(strA in strB) and (strB in strA)快。

答案 1 :(得分:0)

请定义“比较”。

如果您想知道两个字符串是否相等,==是最简单的方法。

如果您想知道1个字符串是否包含另一个,则是最简单的方法。

如果您想知道它们有多少重叠,请考虑缺口,您需要复杂的算法。一本关于算法的厚书怎么样? (这类似于比较基因序列。我认为有关生物信息学算法的书也将非常有用。无论如何,这种情况对于堆栈溢出来说太复杂了。)

编辑:

对于平等,请坚持使用“ ==”。它是用Python来完成的。

答案 2 :(得分:0)

Python中的

==用于比较目的,而“ in”中的定义更宽泛(包含比较)。通常,精确和明确目的的构造是完成目标工作的最优化构造,因为间接构造通常基于简单和直接构造,在比较上下文中应该使==更好,并且更不易出错。