我定义了一个“值”,并且有一个 IF 语句,例如:
value = any ("1" in valueMaj for valueMaj in list)
if value == False:
我可以让我的打印语句打印出所有不正确的内容,而不仅仅是一个。示例:
输入
print("FILE NOT MATCH:", file)
输出
FILE NOT MATCH: filenumber1.txt
但是,我希望它打印所有不匹配的内容,而不是停止循环。
最佳答案
如果您需要所有不匹配的值,请不要使用any()
。创建一个列表,而不是使用带有过滤器的列表理解:
not_matching = [valueMaj for valueMaj in some_list if '1' not in valueMaj]
if not_matching:
print('The following files do not match:', ', '.join(not_matching))
或使用循环打印单个文件。
any()
会短路并停止迭代;它仅适用于根据序列有效测试条件,不适用于过滤该序列。
关于python - 使用 if False 并在不停止 Loop 的情况下打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35895119/