Skip to main content
 首页 » 编程设计

python之用 Python 做 "if string a contains any letter in string b"

2025年05月04日13mayingbao

我一直在用 Python 编程,但是我能想到的所有方法都非常长,我觉得一定有更好的方法。

有没有一种快速的方法(可能是 1 行或 2 行?):

if (stringA.containsAnyLetterIn(stringB)): 
    do stuff 

比如我要

stringA = 'abcdefg' 
stringB = 'hijklmn' 
print stringA.containsAnyLetterIn(stringB) 

返回False,我想要

stringA = 'dog' 
stringB = 'abcdefg' 
print stringA.containsAnyLetterIn(stringB) 

返回 True(因为 d 和 g 在 stringB 中)。

请您参考如下方法:

使用any函数和 in 运算符,像这样

any(char in stringB for char in stringA) 

演示:

>>> stringA, stringB = 'abcdefg', 'hijklmn' 
>>> any(char in stringB for char in stringA) 
False 
>>> stringA, stringB = 'dog', 'abcdefg' 
>>> any(char in stringB for char in stringA) 
True 

如果您想要一个高效的解决方案,将stringA 转换为一个集合,然后检查该集合和stringB 是否为disjoint或不,像这样

>>> stringA, stringB = 'abcdefg', 'hijklmn' 
>>> not set(stringA).isdisjoint(stringB) 
False 
>>> stringA, stringB = 'dog', 'abcdefg' 
>>> not set(stringA).isdisjoint(stringB) 
True