2016-06-28 11 views
-4

私はPythonリスト上で別々の数学演算を実行しようとしています。例として:私は0.15によって1000乗算したいリスト内の値を個別にPythonで掛ける

[1000, 0.15, 1150, 0.1, 0.2, 828, 49.68, 877.68, 100, 977.68] 

、その値を取り、1000(結果= 1150)に追加します。

私は同じリストの値を使って、1150で他の数学演算(除算、乗算、加算など)を実行したいと考えています。

ここで最も一般的なアプローチは何ですか?

私はすべてのコードを書いてくれる人は探していませんが、最良の方法はnumpyでしょうか? forループを使ってこれを達成できますか?

あなただけのリスト内の位置にインデックスを付けることによってこれを行うことができ
+1

ここで何をしようとしていますか?次のステップは何ですか? –

+3

あなたはもっと良い例と、そのリストで何をしたいのかというより多くのルールを教えてもらえますか? –

+1

より具体的な例を教えてください。小規模なリストと、最初の操作から最後の操作までのステップごとの説明?あなたの説明は、今はあいまいです。 –

答えて

1

...

lst = [1000, 0.15, 1150, 0.1, 0.2, 828, 49.68, 877.68, 100, 977.68] 
val = lst[0] 
val += (val*lst[1]) 
print(val) 
>>> 1150 

print(val=lst[2]) 
>>> True 

など

0

あなたはおそらく、さらに詳しく説明する必要があるだろうが、私は行くつもりです次の仮定:1.

  • 他の数学演算をする必要が位置によって決まる割合で増加する

    1. 位置0ニーズを実行され、最初の操作と同様に、ビジネスロジックと配列の厳密な位置によって決定されます。

    私はPython開発者ではありませんが、もっとルビーがありますが、これはPythonコードですか?私は擬似コードを使用して、誰もがあなたの選択した言語に翻訳することでこの回答を得ることができるようにします。

    class OperationParser 
    
        def parse(Array operations) 
        set_base_charge(operations[0]) 
        set_upcharge_for_something(operations[1]) 
        ... 
        set_other_value(operations[2]) 
        ... 
        # continue to set and store the different values from the array here 
        end 
    
        def set_base_charge(int _base_charge) 
        self.base_charge = _base_charge 
        end 
    
        def set_upcharge_for_something(float upcharge) 
        # notice how I added 1 so that the math in the premium calculator is easy. 
        # You could argue that this isn't a proper separation of concerns depending 
        # on how your business and these values are going to change 
        self.upcharge_for_something = 1.0 + upcharge 
        end 
    end 
    
    class PremiumCalculator 
        def calculate_premium(OperationParser operation_parser) 
        operation_parser.base_charge * 
         operation_parser.upcharge_for_something + 
         ... # continue the mathematical operation here 
        end 
    end 
    

    上記の2つのオブジェクトをテストまたは指定するには、テストまたは仕様駆動開発を使用します。私はそれほど分かりませんが、私があなたに与えたことは、2つの別々の懸念があることです。

    1. 任意の行またはスプレッドシートなどの値です。これらの値は、いくつかの静的な操作変数のセットを表します。本当に第三懸念あります

  • あなたが操作変数のセットに基づいて保険料を計算する必要があり、それが私だったら、私はそれに懸命に集中するだろうが、あなたのビジネスは、それの必要性を指示しない場合があります(または少なくともこのコードのバージョン1ではない)しかし、私の心のもう一つの懸念は、これらの "静的な"変数の場所です。その懸案事項は、配列インデックスに定数または他のメソッドを使用することによって抽象化することができます。何かのように...

    class OperationParser 
        BASE_CHARGE_INDEX = 0 
        UPCHARGE_FOR_SOMETHING_INDEX = 1 
    end 
    
  • 関連する問題