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]