检查字符串是否包含Python中子字符串列表中的任何子字符串

时间:2015-08-05 08:26:38

标签: python

我试图做以下逻辑:

bitmap_id = 'HelloWorld'
if 'SLIDE' not in bitmap_id and 'ICON' not in bitmap_id  and 'BOT' not in bitmap_id:
    print bitmap_id

因此,如果bitmap_id是' ICON_helloworld',则不应打印任何内容。

我很确定你们都同意它太长并且看起来很难看,所以我尝试按照下面的说明进行操作,但是它没有用。

if any(s not in bitmap_id for s in ['SLIDE', 'ICON', 'BOT']):
    print bitmap_id

我做错了什么?

3 个答案:

答案 0 :(得分:9)

使用

if all(s not in bitmap_id for s in ['SLIDE', 'ICON', 'BOT']):
     print bitmap_id

if not any(s in bitmap_id for s in ['SLIDE', 'ICON', 'BOT']):
    print bitmap_id

答案 1 :(得分:3)

你实际上需要:

if all(s not in bitmap_id for s in ['SLIDE', 'ICON', 'BOT']):
    print bitmap_id
仅当所有字符串都在if any中时,

bitmap_id才会为false,例如'bitmap_id = 'ICON_SLIDE_BOT'。你想要相反,没有任何字符串存在或所有字符串都不存在。

答案 2 :(得分:1)

您可以这样做:

bitmap_id = 'HelloWorld'
blacklist = ['SLIDE', 'ICON', 'BOT']
if not filter(lambda x: x in bitmap_id, blacklist):
    print bitmap_id