Всем добрый день!
Вопрос следующий. Вот есть у меня 2 списка:
cp = [0, 1, 3, 4, 5, 6]
x = [5, 40, 20, 5, 40, 5]
Мне надо создать новый список result такого вида:
result = [5, 30, 5, 40, 5, 5]
Значения получаются следующим образом:
Смотрим, что между 0 и 1 в списке ср 1 - 0 = 1 значение.
Берем это 1 значение из списка х (5), делим на количество значений (1), получаем 5. Добавляем в result.
Но, если в списке ср между значениями больше 1, т.е. например между 3 и 1: 3 - 1 = 2.
То из списка х надо взять 2 значения (40 и 20) и поделить их сумму на количество значений, т.е. 40 + 20 = 60, 60 / 2 = 30 и 30 занести в result.
Последнее значение в result получается копированием предпоследнего (берем 5, копируем, получается 5 и 5).
Я написала код, который получает первые 2 значения списка. Дальше идут ошибки с индексами и оттого неправильные значения. Собственно, я запуталась с индексами. Помогите, пожалуйста, очень прошу!
Вот код:
Вопрос следующий. Вот есть у меня 2 списка:
cp = [0, 1, 3, 4, 5, 6]
x = [5, 40, 20, 5, 40, 5]
Мне надо создать новый список result такого вида:
result = [5, 30, 5, 40, 5, 5]
Значения получаются следующим образом:
Смотрим, что между 0 и 1 в списке ср 1 - 0 = 1 значение.
Берем это 1 значение из списка х (5), делим на количество значений (1), получаем 5. Добавляем в result.
Но, если в списке ср между значениями больше 1, т.е. например между 3 и 1: 3 - 1 = 2.
То из списка х надо взять 2 значения (40 и 20) и поделить их сумму на количество значений, т.е. 40 + 20 = 60, 60 / 2 = 30 и 30 занести в result.
Последнее значение в result получается копированием предпоследнего (берем 5, копируем, получается 5 и 5).
Я написала код, который получает первые 2 значения списка. Дальше идут ошибки с индексами и оттого неправильные значения. Собственно, я запуталась с индексами. Помогите, пожалуйста, очень прошу!
Вот код:
Python:
cp = [0, 1, 3, 4, 5, 6]
x = [5, 40, 20, 5, 40, 5]
resids = []
sum = 0
for i, v in enumerate(cp): #тут находим делители чисел из списка х
if i == 0:
res = cp[i + 1]
resids.append(res)
elif i == len(cp) - 1:
res = cp[i] - cp[i - 1]
resids.append(res)
else:
res = cp[i + 1] - cp[i]
resids.append(res)
result = []
for i2, v2 in enumerate(x): # тут пытаемся делить
for i1, v1 in enumerate(resids):
if v1 == 1:
result.append(v2)
else:
for i3 in range(1, v1 + 1):
sum += x[i3]
result.append(sum / v1)