2016-05-24 8 views
0

特定の条件を満たす数値を反復処理します。私は次のコードでそれを行いました。しかし、2つのループがあり効率的ではないかもしれません。このコードを短くすることは可能ですか?特定の条件で数値を反復する

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) 
+1

あなただけの状態をチェックするために、ループ内の 'if'を追加しない理由を私は理解していません。あなたは 'for ... for:\ n if ...:\ n print i'を実行できませんか? – Arc676

+2

この特定の場合、 'for i in range(0、10、2):'はオプションです – donkopotamus

答えて

2

2番目の構文は無効ですが、2行に分割することができます:あなたを短縮した場合

for i in range(10): 
    if i % 2 == 0: 
     print(i) 
1

コードは動機(これではならない)ですが、ここに2つの1ライナーがあります:

>>> 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 
関連する問題