Как в списке Python обособить данные для разных объектов?
Мой алгоритм сначала должен построить полином функции, а затем рассчитать его для нескольких точек X_j новой сетки иксов. Формула полинома такова:

Коэффициенты, подчеркнутые зеленым, одинаковы для всех точек сетки. А параметры уравнения, подчеркнутые красным, для всякой точки будут свои. Почему свои? Потому что x каждый раз будет новой точкой (x=0.00, x=0.157, x=3.14 и т.д.).
В моем коде я получаю «красные» параметры одним списком:
[0.0, -0.0, 0.0, 0.15707963267948966, -0.02468040958517225, 0.011629911670345511]
В выводе, приведенном выше, показаны по 3 "красных" параметра для точек x=0.00 и x=0.157.
Затем я "красный" параметр для каждой точки умножаю (согласно формуле полинома) на стоящий при нём «зеленый» коэффициент и всё складываю. Это выведет в консоль рассчитанное для всякой точки значение полинома.
Вопрос: как мне обособить «красные» параметры в промежуточном списке, чтобы они не стояли в нем единым массивом для всех точек? Сейчас выходит так, что мы при расчете полинома даже «сшить» из списков данные через zip не можем: "зеленых" коэффициентов — 3, а "красных" параметров для всех точек 63 (longest_zip не решение проблемы)
Код:
x_j_list = [0.0, 0.15707963267948966, 0.3141592653589793, 0.47123889803846897, 0.6283185307179586]
# список с "зелеными" коэффициентами
koefs_list=[ 5.4099740369590625, -4.635567144596035, -24.403684135550616]
x_col_list = [0.0, 0.3142, 0.6283]
order=2
parameters_list = []
for x_j_elem in x_j_list:
poly_0 = x_j_elem - x_col_list[0]
parameters_list.append(poly_0)
for args in range(1, order): # args = 1,2
poly_n = (x_j_elem - x_col_list[args])*poly_0
if args:
parameters_list.append(poly_n)
poly_0 = poly_n
# список с "зелеными" коэффициентами
# если бы точка была одна, то полином мы бы получили таким образом:
# перемножаем коэффициенты и параметры при них
summa_prod= y_0 + 0
for koefs, params in zip(koefs_list, parameters_list):
product = koefs*params
summa_prod +=product
print(summa_prod)