Попробуйте это, чтобы вернуть список суммы каждого подмножества:
import more_itertools
print([sum(s) for s in more_itertools.windowed([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],n=3, step=3)))
Вывод:
[6, 15, 24, 33, 42]
Чтобы найти среднее значение :
import more_itertools
print([sum(s)/3 for s in more_itertools.windowed([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],n=3, step=3)))
Вывод:
[2.0, 5.0, 8.0, 11.0, 14.0]
Вот как поместить их в функции:
def sumlist(lst,n=3,step=3):
return [sum(s) for s in more_itertools.windowed(lst,n=n,step=step)]]
def avglist(lst,n=3,step=3):
return [sum(s)/n for s in more_itertools.windowed(lst,n=n,step=step)]]
Или также может быть:
def sumlist(lst,n=3,step=3):
lst2 = []
for s in more_itertools.windowed(lst,n=n,step=step):
su = 0
for n in s:
su += n
lst2.append(su)
return lst2
def avglist(lst,n=3,step=3):
lst2 = []
for s in more_itertools.windowed(lst,n=n,step=step):
su = 0
for n in s:
su += n
lst2.append(su/n)
return lst2