我试图做以下逻辑:
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
我做错了什么?
答案 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