我正在寻找比较两个字符串的最有效方法,但不确定哪个更好:==
或in
。还是有其他方法可以比这两种方法更有效?
编辑:我正在尝试检查是否相等
答案 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)
==用于比较目的,而“ in”中的定义更宽泛(包含比较)。通常,精确和明确目的的构造是完成目标工作的最优化构造,因为间接构造通常基于简单和直接构造,在比较上下文中应该使==更好,并且更不易出错。