我想迭代符合特定条件的数字。我用以下代码完成了它。但它有两个for
循环,可能效率不高。是否可以缩短此代码?
for g in [i for i in range(10) if i % 2 == 0]:
print(g)
我尝试了以下操作,但此语法不起作用:
for i in range(10) if i % 2 == 0:
print(i)
答案 0 :(得分:2)
第二种语法无效,但您可以将其拆分为两行:
for i in range(10):
if i % 2 == 0:
print(i)
答案 1 :(得分:1)
如果缩短你的代码是动机(不应该是),那么这里有2个单行:
>>> print('\n'.join(map(str, filter(lambda x:not x%2, range(10)))))
0
2
4
6
8
或
>>> print('\n'.join(map(str, range(0, 10, 2))))
0
2
4
6
8