私は、この1dデータの範囲内にある各iをサブセットと総計しようとしています。私は、私は次のことを実行したときに、私がアクセスできるか確認していないジェネレータオブジェクトを取得する1つのライン - でこれを行うことができれば知りたいと思った:ループのための単一のステートメントで関数を適用する
print(sum(i) for i in range(0,len(subset)) if -1.00< subset[i] < 1.00)
私は、この1dデータの範囲内にある各iをサブセットと総計しようとしています。私は、私は次のことを実行したときに、私がアクセスできるか確認していないジェネレータオブジェクトを取得する1つのライン - でこれを行うことができれば知りたいと思った:ループのための単一のステートメントで関数を適用する
print(sum(i) for i in range(0,len(subset)) if -1.00< subset[i] < 1.00)
sum
は、引数としてiterableをとりますが、整数を渡しています。たとえば、Python 3.XのGenerator(range
)は繰り返し可能です。以下のリンクを参照してください:
あなたは発電機の上に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文の式はちょうど別の発電機です。
'...場合は...' 'sum'コールに行くために、ではない' print'について>検索。 – user2357112