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]