Python如何使用any关键字实现忽略大小写的部分文本匹配并找出所有结果
忽略大小写的部分文本匹配并获取所有匹配项
首先注意别用list当变量名,这会覆盖Python内置的list类型,先把你的列表定义好:
my_list = ['abc_def', '{xyz_abc}', '{www-ABC-zzz}']
要实现忽略大小写的部分匹配,核心思路是把待匹配的字符串和目标子串统一转成相同大小写(全小写或全大写都行),再判断包含关系。
方法1:列表推导式(最直观)
直接遍历列表,把每个字符串转成小写后判断是否包含'abc',符合条件的就保留:
matches = [item for item in my_list if 'abc' in item.lower()] # 运行结果:['abc_def', '{xyz_abc}', '{www-ABC-zzz}']
方法2:使用filter函数
如果偏好函数式风格,也可以用filter配合匿名函数实现:
matches = list(filter(lambda item: 'abc' in item.lower(), my_list)) # 结果和上面完全一致
如果只是想判断是否存在匹配项(和你原来用any的场景一致),可以改成:
has_match = any('abc' in item.lower() for item in my_list) # 运行结果:True
内容的提问来源于stack exchange,提问作者Tal Angel
相关产品推荐
相关产品推荐

