python if循环if语句
问题内容:
如何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]
问题答案:
距离很近,您只需要将三元数移到要创建值的列表理解部分。
res = [i if i < 4 else 0 for i in range(1,6)]