Tôi có một danh sách các số dấu phẩy động và tôi muốn tạo một danh sách các khoảng thời gian khác từ danh sách đầu tiên của tôi.Whats cách nhiều nhất để tính toán thay đổi phần trăm trên danh sách các số
Đây là một hoạt động của các nhà máy thực hiện (không kiểm tra - và rõ ràng là không có lỗi kiểm tra/xử lý):
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]
Có cách nào pythonic hơn để làm điều này - có lẽ sử dụng danh sách hiểu biết và bản đồ?
đầu ra mong muốn là gì? –
@RomanBodnarchuk: Tôi đã cập nhật câu hỏi với kết quả mong đợi –
xem cập nhật câu trả lời. –