0

簡単な質問: ジェネレーター式内の計算結果をリファラーに割り当てることは可能ですか?

次のような式があるとします。

m = (float(i.dist) - float(base) for i in met_obj if str(i.code) != '90')

i.distチャンスにしたいオブジェクトの属性です。私は試した:

m = (float(i.dist) -= float(base) for i in met_obj if str(i.code) != '90')

または、代わりにジェネレーターを使用する必要がありますか?

ありがとう!ラースベガス

4

3 に答える 3

1

ループ内のオブジェクトを破壊的に更新する場合は、ジェネレータ式ではなくループを使用します。

for i in met_obj if str(i.code) != '90':
   i.dist -= float(base)

ジェネレーター式は、関数型スタイルでプログラミングする場合に便利ですが、既存の変数/メンバーへの代入は通常、命令型の構造です。

于 2012-04-05T12:51:41.173 に答える
0

短い答え: いいえ、それは不可能です。

于 2012-04-05T12:33:57.533 に答える
0

あなたのコードにエラーがあると思います。

ご覧のとおり、float()は関数であり、ステートメントfloat(i.dist) -= float(base)は関数呼び出しへの代入を意味するため、構文エラーになります:)

于 2012-04-05T12:04:40.243 に答える