1

値が異なる次のスクリプト例がありますが、実際のxyリストははるかに大きくなっています。

xy1 = value1
xy2 = value2
xy3 = value3 xy4 =
value4
xy5 = value5
xy6 = value6
xy7 = value7
xy8 = value8
xy9 = value9

xytotal = sum((xy1、xy2、xy3、xy4、xy5、xy6、xy7、xy8、xy9))

これらのxy変数が何千もある場合に問題が発生し、それらすべてを合計関数に追加するのは面倒になります。

異なるxy(xy1、xy2、xy3など)ごとにすべてのxy値を合計するようにPythonに指示する方法はありますか?

ありがとう

4

3 に答える 3

3

個別の変数を使用しないでください。リストを使用します。データが十分に複雑な場合は、別のデータ構造と混合することもできます。

そして、私たちがそれに取り組んでいる間:変数名はデータではありません。Pythonが変数名を破棄するとします。

于 2012-08-28T16:05:55.573 に答える
0
all_xy = [value1, value2, value3, ...]
# Note that xy_all[n-1] = valuen

xy_total = sum(all_xy)

を使用してそれらを取得したい場合はall_xy[n] = valuen、 を使用できますall_xy = [0, value1, value2, value3, ...]

リスト構造を使用することは、Python では変数名を使用するよりも間違いなく好まれます。たとえば、次のようにリスト内包表記を簡単に記述できます。

positive_xy = [ xy for xy in all_xy if xy>0 ]
positive_xy_total = sum(positive_xy)

別のオプションは、辞書を使用することです。 .

startswith('xy')チェックインしている場合に注意すべきもう 1 つの理由は、locals()「予期しない」変数 (関数など) を簡単に合計しようとすると、Python 例外が発生する可能性があることです。

于 2012-08-28T16:40:35.317 に答える