【问题标题】:Compare strings with different operators in python在python中使用不同的运算符比较字符串
【发布时间】:2019-06-11 22:25:52
【问题描述】:

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

string1 = "guybrush"
string2 = "guybrush threepwood"

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

compare(==) 应该打印 Falsecompare(in) 应该打印 True

它显然不是那样工作的。我可以将变量分配给运算符,或者我将如何解决?

【问题讨论】:

标签: python


【解决方案1】:

不能直接传入操作符,需要这样的函数:

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

【讨论】:

  • 太好了,谢谢!就我而言,我可以在函数中切换 string1 和 string2 并使用 operator.contains。
  • @Matthias 乐于助人:)
猜你喜欢
  • 2016-10-22
  • 2017-03-28
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 1970-01-01
  • 1970-01-01
  • 2013-09-16
  • 2019-07-25
相关资源
最近更新 更多