Python, использующий цикл For: возможно ли повторно использовать предыдущее число, чтобы снова умножить его внутри списка?

#python

#python

Вопрос:

Я не знаю, имеет ли смысл, пожалуйста, простите за то, как построен мой английский, но у меня есть этот код.

 initial_int = float(input("Enter your initial investment: "))
interest_rate = [0.02, 0.03, 0.015, 0.06]

for a in interest_rate:
    #formula
    print( a * initial_int   initial_int)
  

Моя цель — ввести число, а затем я попытаюсь умножить его внутри каждого элемента списка, затем я хочу повторно использовать предыдущее число, чтобы снова умножить его на следующее число внутри списка. Вот мой ожидаемый результат.

Входное число: 1000

 #and then i want the 1000 to be multiply by each element inside the list interest_rate = [0.02, 0.03, 0.015, 0.06]
  

Вывод:

1020

1050

1065

1125

Ответ №1:

Вам просто нужно умножить текущую сумму на a и добавить ее к самой текущей сумме. Самый простой способ сделать это:

 for a in interest_rate:
    initial_int  = a*initial_int
    print(initial_int)
  

Ответ №2:

Достаточно одного for цикла, но вы также можете использовать accumulate функцию из itertools module, поскольку в python версии v3.8 inital в качестве необязательного аргумента используется функция accumulate support .

 
import itertools

initial_int = float(input("Enter your initial investment: "))
interest_rate = [0.02, 0.03, 0.015, 0.06]

print(list(itertools.accumulate(interest_rate, lambda ini, x: ini  x*ini, initial = initial_int)))

  

вывод: [1000, 1020.0, 1050.6, 1066.359, 1130.34054]

для получения более подробной информации ознакомьтесь с документацией .