如何在Python中使用惯用的for
循环中的else
语句?如果没有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]
。