如何检查*中的* *字符是否在Python中的字符串中?

时间:2015-03-26 15:55:27

标签: python string

我知道:

if 'a' in 'cat':
    win()

但有没有更好的方法来查找字符串中是否存在 两个字母?

以下是一些方法,

if 'a' in 'cat' or 'd' in 'cat':
    win()

if re.search( '.*[ad].*', 'cat' ):
    win()

但是有更清洁/更快/更清晰的东西吗?

像,

# not actual python code
if either ['a', 'd'] in 'cat':
    win()

3 个答案:

答案 0 :(得分:13)

您可以使用any功能:

if any(item in 'cat' for item in ['a', 'd']):  # Will evaluate to True
    win()

还有all功能可检查所有条件是否为真:

if all(item in 'cat' for item in ['a', 'd']):  # Will evaluate to False
    win()

答案 1 :(得分:6)

你可以使用套装:

if set('ab').intersection(set('cat')):
    win()

答案 2 :(得分:0)

类似于selcuk的回答,只是使用带有项目的列表的真实性。

if [letter for letter in ['a','d'] if letter in 'cat']:
    win()