python - 在python中使用不同的运算符比较字符串
问题描述
我想用比较/成员运算符作为参数来比较函数中的两个字符串。
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 运算符有点棘手,因为operator
没有in
运算符但有contains
operator.contains(a, b)
与 相同b in a
,但这不适用于您的情况,因为设置了字符串的顺序。在这种情况下,您可以定义自己的函数:
def my_in(a, b): return a in b
compare(my_in)
>>>True
推荐阅读
- vba - 访问 vba msado 参考中的路径错误
- swift - Swift 3 有没有办法将日期打印为 Date 而不是 String
- html - 如何单击使用 python 的 Selenium webdriver 标签创建的按钮?
- javascript - 在主渲染循环中访问 GLTF 导入的部分内容(对不起,如果不成熟)
- linux - 删除超过 30 天的文件,但在 1 个目录中保留 6 个月
- python - Scapy - 如何模拟大小小于最小值(20 字节)的 IP 标头/数据包
- php - 路由控制器功能到welcome.blade 文件
- angular - 如何解析从 ng-pick-date-time 收到的日期?
- javascript - 为什么使用 querySelecter 设置输入类型文件元素的值有效,但 getElementById 无效?
- c# - 需要使用 xamarin hybridwebview 调用 2 个或更多操作