我一直在用 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
