Подведите список чисел в Python - PullRequest
325 голосов
/ 06 декабря 2010

У меня есть список чисел, например [1,2,3,4,5...], и я хочу вычислить (1+2)/2, а для второго (2+3)/2 и третье (3+4)/2 и т. Д.Как я могу это сделать?

Я бы хотел сложить первое число со вторым и разделить его на 2, затем сложить второе с третьим и разделить на 2 и т. Д.

Кроме того, как я могу сложить список чисел?

a = [1, 2, 3, 4, 5, ...]

Это:

b = sum(a)
print b

, чтобы получить одно число?

Это не работает дляя.

Ответы [ 22 ]

0 голосов
/ 06 декабря 2010

в духе itertools.Вдохновение из парного рецепта.

from itertools import tee, izip

def average(iterable):
    "s -> (s0,s1)/2.0, (s1,s2)/2.0, ..."
    a, b = tee(iterable)
    next(b, None)
    return ((x+y)/2.0 for x, y in izip(a, b))

Примеры:

>>>list(average([1,2,3,4,5]))
[1.5, 2.5, 3.5, 4.5]
>>>list(average([1,20,31,45,56,0,0]))
[10.5, 25.5, 38.0, 50.5, 28.0, 0.0]
>>>list(average(average([1,2,3,4,5])))
[2.0, 3.0, 4.0]
0 голосов
/ 12 августа 2015
n = int(input("Enter the length of array: "))
list1 = []
for i in range(n):
    list1.append(int(input("Enter numbers: ")))
print("User inputs are", list1)

list2 = []
for j in range(0, n-1):
    list2.append((list1[j]+list1[j+1])/2)
print("result = ", list2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...