Mam listę liczb zmiennoprzecinkowych i chcę wygenerować kolejną listę okresowych zwrotów z mojej pierwszej listy.Jaki jest najbardziej pytony sposób obliczania zmian procentowych na liście liczb
jest to przebieg realizacji młyna (nie testowane - i oczywiście nie błąd sprawdzania/obsługa):
a = [100,105,100,95,100]
def calc_period_returns(values, period):
output = []
startpos, endpos = (period, len(values)-1)
while True:
current = values[startpos]
previous = values[startpos-period]
ret = 100*((current-previous)/(1.0*previous))
output.append(ret)
startpos += period
if startpos > endpos:
break
return output
calc_period_returns(a,1)
# Expected output:
# [5.0, -4.7619047619047619, -5.0, 5.2631578947368416]
Czy istnieje bardziej pythonic sposobem w ten sposób - być może przy użyciu listowych i mapy?
co jest pożądane wyjście? –
@RomanBodnarchuk: Mam zaktualizowane pytanie z oczekiwanym wyjściem –
zobacz aktualizację odpowiedzi. –