比较python中具有不同运算符的字符串

比较python中具有不同运算符的字符串,python,Python,我想比较一个函数中的两个字符串,并使用比较/成员运算符作为参数 string1 = "guybrush" string2 = "guybrush threepwood" def compare(operator): print(string1 operator string2) compare(=)应打印False和 compare(in)应打印True 它显然不是那样工作的。我可以给运算符分配变量吗?或者我该如何解决这个问题?您不能直接传入运算符,您需要这样一个函数: from o

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

string1 = "guybrush"
string2 = "guybrush threepwood"

def compare(operator):
    print(string1 operator string2)
compare(=)
应打印
False
compare(in)
应打印
True


它显然不是那样工作的。我可以给运算符分配变量吗?或者我该如何解决这个问题?

您不能直接传入运算符,您需要这样一个函数:

from operator import eq

string1 = "guybrush"
string2 = "guybrush threepwood"

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

compare(eq)
>>>False
in操作符有点棘手,因为
操作符
没有
in
操作符,但有
contains

运算符.contains(a,b)
与a中的
b相同,但这在您的情况下不起作用,因为字符串的顺序已设置。在这种情况下,您可以定义自己的函数:

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

compare(my_in)
>>>True

这个问题不能完全回答你的问题。但它的解释可能会帮助你理解如何去做。使用操作员:试试这个:太好了,谢谢!在我的例子中,我可以在函数中切换string1和string2,并使用操作符.contains。@Matthias乐于帮助:)