我正在尝试匹配列表中的字符串。如果输入的字符串存在于字符串中的任何位置,搜索已完成,我想返回True
。我知道,它可以是一个使用re.search
,但我试图在不使用正则表达式模块的情况下这样做。我想尽可能简单地做到这一点。
一个简单的例子可能是:
drinks = ['cola_with_ice', 'icetea', 'lemonade', 'coffee']
if 'cola_with_ice' in drinks:
print 'Requested drink or a variant of it exists'
但是,我希望我的代码返回True
,例如,即使是' cola'输入:
if 'cola' in drinks:
...
我想知道是否可能。我想,可以做,可能是使用通配符等......
答案 0 :(得分:2)
>>> drinks = ['cola_with_ice', 'icetea', 'lemonade', 'coffee']
>>> any('cola' in drink for drink in drinks)
True
>>> any('apple' in drink for drink in drinks)
False
答案 1 :(得分:2)
在您的示例中,drinks
是一个列表,您正在搜索列表中字符串的子字符串,因此您必须遍历列表(可能使用生成器表达式),如下所示:< / p>
drinks = ['cola_with_ice', 'icetea', 'lemonade', 'coffee']
if any('cola' in x for x in drinks):
# your code