Мне было интересно, есть ли в списочных определениях какой-либо особый порядок оценки, который делает невозможным их репликацию в обычном операторе if:
Например, можно ли написать то же самое без понимания списка? Если так, возможно ли это без использования else?
a, b = set(), set()
[a.add(i) for i in range(5) if i % 2 == 0 or b.add(i)]
В частности, я демонстрирую ленивую оценку «или» в этом случае, но я не могу понять, как продемонстрировать это вне понимания списка, потому что при использовании «if» в нормальном цикле for, set.add () - это объект, который оценивается в логическом контексте вместо фактического выражения ( i % 2 == 0 )
.