Я хочу построить значение в понимании списка, но также отфильтровать это значение. Например:
[expensive_function(x) for x in generator where expensive_function(x) < 5]
Я хочу избежать вызова strict_function
дважды за итерацию.
Генератор
может возвращать бесконечный ряд, и понимание списка не выполняется лениво. Так что это не сработает:
[y in [expensive_function(x) for x in generator where expensive_function(x)] where y < 5]
Я мог бы написать это по-другому, но это кажется правильным для понимания списка, и я уверен, что это общий шаблон использования (возможно или нет!).