我可能没有问对:我想要一个可以匹配任何列表的列表值:(None,) 的“逆” 但即使使用 (None,) 它也会将项目匹配为 None (我不想要)
关键是我有一个函数使用:[x for x in my_list if x[field] not in filter_list]
我想在不进行如下测试的情况下过滤所有内容或不过滤任何内容: if filter_list==(None,): return [] 和 if filter_list==('*',): return my_list
PS:我想简化导致一些错误(list 标识符)或愚蠢的事情 [x for x in x] ;)
你好,
我需要在 python 中使用列表推导式进行一些过滤。
如果我这样做:
[x for x in list if x in (None,)]
我去掉了所有的值,这很好
但我想用同样的东西来匹配一切
我可以这样做:
[x for x in list if x not in (None,)]
但它不会与其余的同质
我尝试了一些东西,但是例如 (True,) 只匹配 1
请注意,要过滤的值是数字,但如果您有一些通用的东西(例如 (None,) 不匹配任何内容),那就太好了
谢谢 路易斯
请您参考如下方法:
__contains__ 是检查某物是否在序列中的神奇方法:
class everything(object):
def __contains__(self, _):
return True
for x in (1,2,3):
print x in everything()
