我有一个python中的项目列表,以及一种检查项目是否有效的方法。如果任何一个项目无效,我需要拒绝整个列表。我能做到这一点:
def valid(myList):
for x in myList:
if isInvalid(x):
return False
return True
有更多的Pythonic方式吗?你可以过滤它,但这会评估列表中的所有项目,只评估第一个项目就足够了(如果不好的话)......
非常感谢你的帮助。
答案 0 :(得分:14)
执行此操作的典型方法是将内置any
函数与生成器表达式
if any(isInvalid(x) for x in myList):
#reject
语法干净而优雅,您可以获得与原始功能相同的短路行为。