from math import log, floor
a = [12.0, 3.4, 9.2, 7.7, 4.9, 3.8, 6.9]
print([sum(a[2**i-1:2**(i+1)-1]) for i in range(floor(log(len(a), 2)) + 1)])
Это выводит:
[12.0, 12.6, 23.3]
Индексы, используемые для сумм:
[(0, 1), (1, 3), (3, 7), (7, 15), (15, 31), ...]
Последняя сумма может быть сокращена, если длина списка неточнее одного меньше, чем степень 2.