6

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

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

有没有更 Pythonic 的方式来做到这一点?您可以对其进行过滤,但这会评估列表中的所有项目,而仅评估第一个项目就足够了(如果它很糟糕)......

非常感谢您的帮助。

4

1 回答 1

14

执行此操作的典型方法是使用any带有生成器表达式的内置函数

if any(isInvalid(x) for x in myList):
   #reject

语法简洁优雅,并且您获得与原始函数相同的短路行为。

于 2013-05-30T18:52:01.350 回答