首页 > 解决方案 > 在python中使用不同的运算符比较字符串

问题描述

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

string1 = "guybrush"
string2 = "guybrush threepwood"

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

compare(==)应该打印False并且 compare(in)应该打印True

它显然不是那样工作的。我可以将变量分配给操作员,或者我将如何解决这个问题?

标签: python

解决方案


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

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

推荐阅读