小编典典

python if循环if语句

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]


阅读 223

收藏
2021-01-20

共1个答案

小编典典

距离很近,您只需要将三元数移到要创建值的列表理解部分。

res = [i if i < 4 else 0 for i in range(1,6)]
2021-01-20