python 惯用的 python for 循环 if else 语句
python idiomatic python for loop if else statement
如何在惯用的 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]
你很接近,你只需要将三元移动到你正在创建值的列表推导部分。
res = [i if i < 4 else 0 for i in range(1,6)]
如何在惯用的 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]
你很接近,你只需要将三元移动到你正在创建值的列表推导部分。
res = [i if i < 4 else 0 for i in range(1,6)]