Во-первых, второстепенный вопрос, но это не понимание списка; это выражение генератора. Разница здесь не существенная, но они разные. Понимания списка заключены в []
, в то время как выражения генератора используют ()
(как у вас здесь).
Во-вторых, у вас по существу есть:
if <generator expression>:
Проблема в том, что Само выражение генератора никогда не будет ложным (в отличие от результата понимания списка), поэтому это условие всегда будет истинным.
Вы хотите использовать any
, чтобы сказать «если какие-либо тесты» верны ":
if any(str(i_test) in filename for i_test in range(15,20)):