out = [sum(rst) for i in range(1,len(rst)-1)]# сложение со следующим числом
ответ:
print(6,12,14,19)
надо получить:
(6),(6+3+2),(11+5+5),(21+2)
Заранее Спасибо за понимание.
>>> def f(seq): ... out = [] ... it = iter(seq) ... c = 0 ... while True: ... a = next(it, None) ... if a is None: ... break ... b = next(it, 0) ... c += a + b ... out.append(c) ... return out ... >>> lst = [2, 4, 3, 2, 5, 5, 2] >>> >>> f(lst) [6, 11, 21, 23] >>>
rst = (2,4,6,2,10) sum1 = [] i = 0 while i<len(rst)+2: sum1.append(sum(rst[:i])) i+=2 print(sum1)
vitz
Ответ нашел. если интересно то:
vitzНу такое, это на вид оно короткое, а по сути что? Оно пересчитывает то, что уже считало. Если там миллион элементов будет, оно будет сотни тысяч элементов считать, а потом их пересчитывать снова.sum1.append(sum(rst[:i]))
>>> rst = (2,4,6,2,10) >>> sum1 = [] >>> i = 0 >>> while i<len(rst)+2: ... sum1.append(sum(rst[:i])) ... i+=2 ... >>> print(sum1) [0, 6, 14, 24] >>>