我一直在用 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
关于python - 用 Python 做 "if string a contains any letter in string b",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29203890/