gt6*_*89b 6 python validation iterable list
我有一个python中的项目列表,以及一种检查项目是否有效的方法.如果任何一个项目无效,我需要拒绝整个列表.我能做到这一点:
def valid(myList):
for x in myList:
if isInvalid(x):
return False
return True
Run Code Online (Sandbox Code Playgroud)
有更多的Pythonic方式吗?你可以过滤它,但是这将评估列表中的所有项目,当评估第一个项目就足够了(如果它是坏的)......
非常感谢您的帮助.
mgi*_*son 14
执行此操作的典型方法是使用内置any
函数和生成器表达式
if any(isInvalid(x) for x in myList):
#reject
Run Code Online (Sandbox Code Playgroud)
语法干净而优雅,您可以获得与原始函数相同的短路行为.