2017-06-28 1 views
0

私は、この1dデータの範囲内にある各iをサブセットと総計しようとしています。私は、私は次のことを実行したときに、私がアクセスできるか確認していないジェネレータオブジェクトを取得する1つのライン - でこれを行うことができれば知りたいと思った:ループのための単一のステートメントで関数を適用する

print(sum(i) for i in range(0,len(subset)) if -1.00< subset[i] < 1.00) 
+1

'...場合は...' 'sum'コールに行くために、ではない' print'について>検索。 – user2357112

答えて

3

あなたは発電機の上にsumを実行する必要があります。あなたのブラケットがちょうど間違った項目を中心に設定された

print(sum(i for i in range(0,len(subset)) if -1.00 < subset[i] < 1.00)) 

...

もう少し明確な

gen = (i for i in range(0,len(subset)) if -1.00 < subset[i] < 1.00) 
print(sum(gen)) 
:何が欲しいのはこれです

あなたのブラケットが設定されている方法は、あなたの結果はこれです:

gen = (i for i in range(0,len(subset)) if -1.00 < subset[i] < 1.00) 
print(sum(i) for i in gen) 

...とprint文の式はちょうど別の発電機です。

関連する問題