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)
问题:是否可以将前两行填入一行?最好这样做吗?
你可以使用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)