python python idiomático para loop se outra instrução

Como posso usarelse declaração em um Python idiomáticofor ciclo? Semelse Eu posso escrever, por exemplo:

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

O resultado é:[1, 2, 3]

A forma normal do código acima é:

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

O resultado é o mesmo da forma idiomática:[1, 2, 3]

E eu quero isso:

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

eu receboSyntaxError: invalid syntax. O resultado deve ser:[1, 2, 3, 0, 0] O código normal disso é:

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

O resultado é:[1, 2, 3, 0, 0]

questionAnswers(1)

yourAnswerToTheQuestion