Как понять строку кода (sum(input_data[i-window:i]) / window)?

Рейтинг: 0Ответов: 1Опубликовано: 03.08.2023

Как понять строку кода (sum(input_data[i-window:i]) / window)?

Неясно это [i-window:i]

def moving_average(input_data, window):
    result = []

    for i in range(1, len(input_data)+1):
        if i < window:
            result.append(0)
        else:
            result.append(sum(input_data[i-window:i]) / window)
    return result

Ответы

▲ 1Принят

Это ничто иное как срез.

input_data[i-window:i] 

Следущий код: вычисляет сумму элементов, полученных в результате среза input_data[i-window:i]

sum(input_data[i-window:i]) 

Документация

В двух словах, срезы позволяют получить нужную часть из list - предварительно указав границы. list[START:STOP:STEP]