在Python中拒绝列表的快速方法

时间:2013-05-30 18:50:52

标签: python list validation iterable

我有一个python中的项目列表,以及一种检查项目是否有效的方法。如果任何一个项目无效,我需要拒绝整个列表。我能做到这一点:

def valid(myList):
    for x in myList:
        if isInvalid(x):
           return False
    return True

有更多的Pythonic方式吗?你可以过滤它,但这会评估列表中的所有项目,只评估第一个项目就足够了(如果不好的话)......

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:14)

执行此操作的典型方法是将内置any函数与生成器表达式

一起使用
if any(isInvalid(x) for x in myList):
   #reject

语法干净而优雅,您可以获得与原始功能相同的短路行为。