python中的精确字符串匹配-两个列表元素的比较

时间:2019-07-23 14:20:00

标签: python string-comparison

我正在尝试比较python中的两个列表元素。如果两个元素完全匹配,则应返回true,否则返回false。

元素看起来像这样:

list1_element_1: ['GigabitEthernet0/6/4/1']

list2_element_1: ['GigabitEthernet0/6/4/1.100']

我尝试了多种方法来比较这两个元素,包括正则表达式。 以下是我用来比较元素的函数:

def find_word(text,search):
    result = re.findall('\\b'+search+'\\b', text)
    if len(result)>0:
        return True
    else:
        return False

预期结果:

find_word('GigabitEthernet0/6/4/1.100','GigabitEthernet0/6/4/1') FALSE

实际结果:

find_word('GigabitEthernet0/6/4/1.100','GigabitEthernet0/6/4/1') TRUE, because 'GigabitEthernet0/6/4/1' is existing in element 'GigabitEthernet0/6/4/1.100', I guess?

仅当两个列表元素完全相同时才返回True!

谢谢!

2 个答案:

答案 0 :(得分:4)

我不愿意告诉您这一点,但是您想得太多了-您可以为此使用常规的==运算符:

list1_element_1: ['GigabitEthernet0/6/4/1']
list2_element_1: ['GigabitEthernet0/6/4/1.100']
list3_element_1: ['GigabitEthernet0/6/4/1']

print(list1_element_1 == list2_element_1)  # False
print(list1_element_1 == list3_element_1)  # True

对于字符串,==运算符如果完全匹配,则返回True。对于列表,如果长度相同且对应的元素完全匹配,则返回True(如果要比较自定义类,则使用.__eq__()方法进行比较-所有内置类实施平等概念)。因此,如果您有一个字符串列表,则可以测试它是否等于另一个字符串列表:

print(['str1', 'str2', 'str3'] == ['str1', 'str2', 'str3'])  # True
print(['str1', 'str2', 'str3'] == ['str1', 'str3', 'str2'])  # False

答案 1 :(得分:0)

只需使用:

def find_word(text, search):
    return text == search