通过特定条件迭代数字

时间:2016-05-24 11:13:17

标签: python python-2.7

我想迭代符合特定条件的数字。我用以下代码完成了它。但它有两个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)

2 个答案:

答案 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