Хороший (если немного сложный) способ сделать это - использовать творческие ломтики и zip
- см. Консольную стенограмму ниже.
# Input data.
>>> y1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Look at the even and odd values.
>>> y1[::2], y1[1::2]
([1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
# Use zip to transpose these two lists of five into five lists of two.
>>> zip(*(y1[::2], y1[1::2]))
[(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]
# Use a list comprehension over the pairs to average them.
>>> [(a + b) / 2. for (a, b) in zip(*(y1[::2], y1[1::2]))]
[1.5, 3.5, 5.5, 7.5, 9.5]
Это произойдет сбой, если длина списка не делится на два.