python - python中的精确字符串匹配 - 两个列表元素的比较
问题描述
我正在尝试比较 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!
谢谢!
解决方案
我不想告诉你这个,但你想多了 - 你可以使用常规==
运算符:
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
推荐阅读
- regex - wp-cli search-replace 使用正则表达式时不替换
- r - R - 提取名称为 X 的列表的所有元素
- ios - URLSessionConfiguration 的 httpMaximumConnectionsPerHost 在网络故障的情况下不起作用
- html - 当来自 api 的响应不完全有角度时,如何跳过 ngFor?
- java - ApiResponses 混淆 Swagger-UI 输出找不到“类型”
- javascript - jQuery 用于根据下拉列表的更改值在 asp 中继器中设置背景颜色
- python - 我可以使用 ktrain 库从检查点恢复训练吗?
- python - 使用 to_sql 将 Pandas 数据帧中的数据批量插入 Sybase 数据库表失败
- java - 在 Java 中显示 3D 数组中的值
- filter - 将过滤器和消费者放在同一范围内(MassTransit)