2016-06-28 6 views
-4

파이썬리스트에서 별도의 수학 연산을 수행하려고합니다. 예를 들면 다음과 같습니다.리스트에서 개별적으로 값을 파이썬으로 곱하기

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

1000을 곱하여 1000을 0.15로 곱하고 1000 (결과 = 1150)에 더하고 싶습니다.

같은 목록의 값을 사용하여 1150에서 다른 수학 연산 (나누기, 곱하기, 더하기 등)을 수행하고 싶습니다.

가장 일반적인 접근 방법은 무엇입니까?

나는 모든 코드를 쓰는 사람을 찾고있는 것이 아니라 최선의 방법이 될 것이라고 생각하십니까? 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. 위치는 0의 필요 1.
  2. 다른 수학 연산을 할 필요가 위치에 의해 결정 비율 증가합니다 수행되고 첫 번째 연산과 마찬가지로 배열의 비즈니스 로직과 엄격한 위치에 따라 결정됩니다.

나는 파이썬 개발자가 아니며 더 많은 루비를 사용하지만 파이썬 코드라고 가정 해 보겠습니다. 의사 코드를 사용하여 모든 사람이 선택한 언어로 번역하여이 답변을 얻을 수 있도록하겠습니다.

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. 주어진 줄 또는 스프레드 시트에있는 값 또는 기타. 그리고이 값은 일부 정적 변수 집합을 나타냅니다. 정말 세 번째 문제있다

  • 당신은 작동 변수의 집합을 기준으로 보험료를 계산해야하고 그것은 나를 있다면 나는 그것을 열심히 초점을 맞출 것이다, 그러나 당신의 사업이 그것의 필요성을 지시하지 않을 수 있습니다 (또는 적어도이 코드의 버전 1은 아닙니다.)하지만 ... 내 마음 속의 또 다른 관심사는 이러한 "정적"변수의 위치입니다. 이러한 우려는 배열 인덱스에 상수 또는 다른 메서드를 사용하여 추상화 할 수 있습니다. 뭔가 ...

    class OperationParser 
        BASE_CHARGE_INDEX = 0 
        UPCHARGE_FOR_SOMETHING_INDEX = 1 
    end 
    
  • 관련 문제