簡體   English   中英

使用python中的不同運算符比較字符串

[英]Compare strings with different operators in python

我想用比較/成員運算符作為參數比較函數中的兩個字符串。

string1 = "guybrush"
string2 = "guybrush threepwood"

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

compare(==)應該輸出Falsecompare(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM