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

标签 python string python-2.7

我一直在用 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(因为 dg 在 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/

相关文章:

ios - 如何在 Swift 4 中更改文本字段中的文本时每 2 个字符后添加分隔符

c - C 中的字符串连接函数不执行任何操作,那么正确的方法是什么?

Python:具有列表理解的三层嵌套

python - 如何在 Windows 7 上为 python 2.7 编译和安装 pysqlcipher

python - 是否有理由更喜欢 __slots__ 的列表或元组?

python - 是否可以向 Python 列表实例添加方法?

python - 从字符串中删除字符并进行替换不起作用

Python:扭曲的服务器和值(value)观

python - 如何将行转换为 Pandas Dataframe 中的列

python - 在Python中打印列表元素和字符串有不同的结果