使用python中的不同运算符比较字符串

时间:2019-01-17 16:52:02

标签: python

我想用比较/成员运算符作为参数比较函数中的两个字符串。

string1 = "guybrush"
string2 = "guybrush threepwood"

def compare(operator):
    print(string1 operator string2)

compare(==)应打印False,然后 compare(in)应打印True

显然不是这样。我可以将变量分配给运算符,还是要解决该问题?

1 个答案:

答案 0 :(得分:5)

您不能直接传递运算符,您需要像这样的函数:

from operator import eq

string1 = "guybrush"
string2 = "guybrush threepwood"

def compare(op):
    print(op(string1, string2))

compare(eq)
>>>False

in运算符比较棘手,因为operator没有in运算符,但是确实有contains

operator.contains(a, b)b in a相同,但是由于设置了字符串的顺序,因此在您的情况下将不起作用。在这种情况下,您可以定义自己的函数:

def my_in(a, b): return a in b

compare(my_in)
>>>True