如何检查列表中每个项目的"if condition"

Ale*_*ter 2 python design-patterns

我正在尝试针对一组非常具体的规则检查某个列表.在这个特定的例子中,我有一个退出代码列表,我想检查测试是否失败.如果其中一个退出代码不为0,则测试失败.

我目前的实施:

for exit_code in result_list:
    if exit_code is not 0:
        raise TestFailed
Run Code Online (Sandbox Code Playgroud)

问题:是否可以将前两行填入一行?最好这样做吗?

Sel*_*cuk 5

你可以使用any:

if any(exit_code != 0 for exit_code in result_list):
    raise TestFailed
Run Code Online (Sandbox Code Playgroud)

请注意,上述方法假定您还要检查等效于布尔值的值False(例如None,或False!).如果您确定result_list只包含数字,则可以将其缩短一点:

if any(result_list):
    raise TestFailed
Run Code Online (Sandbox Code Playgroud)