Skip to main content
 首页 » 编程设计

python之2个列表上的字符串比较

2025年05月04日24dyllove98

我有 2 个列表。

a = ['this;mango', 'is:red', 'test;cat'] 
b = ['man', 'is', 'can'] 

我想遍历 b 的每个元素并检查该字符串是否存在于列表 a 中。我怎样才能做到这一点 ?

对于上面的示例输出将是:

# is 

请您参考如下方法:

a = ['this;mango', 'is:red', 'test;cat'] 
b = ['man', 'is', 'can'] 
 
import re 
 
for elem in b: 
    for test in a: 
        if re.search(r'\b' + re.escape(elem) + r'\b', test): 
            print elem 

使用列表理解:

>>> a = ['this;mango', 'is:red', 'test;cat'] 
>>> b = ['man', 'is', 'can'] 
>>>  
>>> import re 
>>> [elem for elem in b if any(re.search(r'\b' + re.escape(elem) + r'\b', test) for test in a)] 
['is'] 

另一个带有 map 和 lambda 的版本可以避免 a 上的 explicit 循环:

>>> [elem for elem in b if any(map(lambda test: re.search(r'\b' + re.escape(elem) + r'\b', test), a))] 
['is']