Python идиоматический Python для цикла, если еще заявление

Как я могу использоватьelse утверждение в идиоматическом Pythonfor цикл? Безelse Я могу написать, например:

res = [i for i in [1,2,3,4,5] if i < 4]

Результат:[1, 2, 3]

Обычная форма приведенного выше кода:

res = []
for i in [1,2,3,4,5]:
    if i < 4:
        res.append(i)

Результат такой же как в идиоматической форме:[1, 2, 3]

И я хочу это:

res = [i for i in [1,2,3,4,5] if i < 4 else 0]

я получилSyntaxError: invalid syntax, Результат должен быть:[1, 2, 3, 0, 0] Обычный код этого:

res = []
for i in [1,2,3,4,5]:
    if i < 4:
        res.append(i)
    else:
        res.append(0)

Результат:[1, 2, 3, 0, 0]

Ответы на вопрос(1)

Ваш ответ на вопрос