如何检查字符串列表中是否存在字符串,包括子字符串?

The*_*iat 2 python string list

我编写了一个函数来检查列表中是否存在值,如果存在则返回True.它适用于完全匹配,但如果值存在于列表条目中的任何位置,我需要它返回True(例如,值<= listEntry,我认为.)这是我用于函数的代码:

def isValInLst(val,lst):
    """check to see if val is in lst.  If it doesn't NOT exist (i.e. != 0), 
    return True. Otherwise return false."""
    if lst.count(val) != 0:
        return True
    else:
        print 'val is '+str(val)
        return False
Run Code Online (Sandbox Code Playgroud)

如果不循环遍历整个字符串和/或使用RegEx(除非那些是最有效的),我应该如何以pythonic方式进行此操作?

这与另一个SO问题非常相似,但我需要检查列表中任何位置是否存在ENTIRE val字符串.返回匹配的索引/索引也很棒,但我确信Stackoverflow上的其他内容已经覆盖了.

Ash*_*ary 10

如果我理解你的问题,那么我想你需要any:

return any(val in x for x in lst)
Run Code Online (Sandbox Code Playgroud)

演示:

>>> lst = ['aaa','dfbbsd','sdfdee']
>>> val = 'bb'
>>> any(val in x  for x in lst)
True
>>> val = "foo"
>>> any(val in x  for x in lst)
False
>>> val = "fde"
>>> any(val in x  for x in lst)
True
Run Code Online (Sandbox Code Playgroud)