在python中单独乘以列表中的值

时间:2016-06-28 16:53:35

标签: python numpy

我试图在python列表上执行单独的数学运算。举个例子:

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

我想将1000乘以0.15,然后取该值并将其加到1000(结果= 1150)。

然后我想在1150上使用同一列表中的值执行其他数学运算(除法,乘法,加法等)。

这里最好的一般方法是什么?

我没有找任何人给我写所有的代码,但是numpy是最好的方法吗?我可以使用for循环来实现吗?

2 个答案:

答案 0 :(得分:1)

您只需索引列表中的位置即可完成此操作...

<root>
    <a>
        <b>
            <c>hi</c>
        </b>
    </a>
    <a>
        <b>
            <c>hi</c>
        </b>
    </a>
</root>

答案 1 :(得分:0)

您可能需要进一步详细说明,但我会采用以下假设:

  1. 职位0需要增加一个由职位1决定的百分比。
  2. 需要执行其他数学运算,并且像第一个操作一样,由业务逻辑和数组中的严格位置决定
  3. 我不是python开发人员,我做了更多的ruby,但是让我们假装这是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
    

    我会使用测试或规范驱动开发来测试或指出上面的两个对象。我不太了解,但你给我的是你有两个不同的问题。

    1. 任何给定行或电子表格中的值或其他值。这些值代表一些静态的操作变量集。
    2. 您需要根据该组操作变量
    3. 计算保费

      真的有第三个问题,如果是我,我会专注于它,但你的企业可能不会决定它的必要性(或者至少不是在这个代码的第1版中),但是......在我看来,另一个问题是这些&#34;静态&#34;变量。可以通过对数组索引使用常量或其他方法来抽象这种关注。有点像...

      class OperationParser
        BASE_CHARGE_INDEX = 0
        UPCHARGE_FOR_SOMETHING_INDEX = 1
      end