Это происходит потому, что если вы поместите if
в первую часть, которая определяет значение, а if
считается троичным оператором.
Это означает, что вы не можете получить его без другого точно так же, как вы не можете написать
item = 2 if other_item == 3
Поскольку правая сторона оценивается как ... что, когда other_item не равно 3?
Итак, вам нужно что-то вроде
item = 2 if other_item == 3 else 4
Ваш пример такой же.
Если вместо этого у вас есть это в конце, это условие, которое полностью исключает значение, поэтому от вас не ожидается альтернативы: вы в основном говорите «не включайте это значение в результаты».