Операции со списками Python разной длины

Есть 2 списка. В koefs_list - коэффициенты. Берем их и перемножаем с параметрами списка parameters_list.

Причем надо так:

  1. алгоритм отмеривает длину order из parameters_list

  2. перемножает с коэффициентами: каждый элемент со своим коэффициентом по порядку из koefs_list

  3. складывает полученные множители, прибавляя к ним y_0

  4. результат кладет в новый список polinom_list.

  5. операции с 1 по 4 проделывает со следующими элементами parameters_list в пределах длины order. И так - до конца списка parameters_list.

Сейчас у меня применена функция zip. Однако трудности с остальным.

Код:

y_0 = 0
summa_prod= y_0 + 0
order = 3

polinom_list = []
koefs_list = [3,4,5]
parameters_list = [1,1,1,2,2,2,3,3,3]

for koefs, params in zip(koefs_list, parameters_list):
    product = koefs*params
    summa_prod +=product

Ответы (1 шт):

Автор решения: strawdog

мне кажется, вы используете неверный инструментарий. вам, вероятно, подойдут методы работы с табличными данными. например, через pandas:

import pandas as pd

order = 3
y_0 = 0
koefs_list = [3,4,5]
parameters_list = [1,1,1,2,2,2,3,3,3]

df = pd.DataFrame({"params":parameters_list, "koefs":koefs_list*int(len(parameters_list)/len(koefs_list))})
df["res"] = df["params"]*df["koefs"]+y_0
print(df)
   params  koefs  res
0       1      3    3
1       1      4    4
2       1      5    5
3       2      3    6
4       2      4    8
5       2      5   10
6       3      3    9
7       3      4   12
8       3      5   15
→ Ссылка