[英]Compare strings with different operators in 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.