给定一个数字列表,例如:

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

我如何计算它们的总和:

1 + 2 + 3 + 4 + 5 + ...

我如何计算他们的两两平均值:

[(1+2)/2, (2+3)/2, (3+4)/2, (4+5)/2, ...]

当前回答

问题2: 对一组整数求和:

a = [2, 3, 5, 8]
sum(a)
# 18
# or you can do:
sum(i for i in a)
# 18

如果列表中包含整数作为字符串:

a = ['5', '6']
# import Decimal: from decimal import Decimal
sum(Decimal(i) for i in a)

其他回答

>>> a = range(10)
>>> sum(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
>>> del sum
>>> sum(a)
45

sum似乎已经在代码的某个地方定义了,并且覆盖了默认函数。所以我删除了它,问题解决了。

使用简单的列表-理解和求和:

>> sum(i for i in range(x))/2. #if x = 10 the result will be 22.5

问题2: 对一组整数求和:

a = [2, 3, 5, 8]
sum(a)
# 18
# or you can do:
sum(i for i in a)
# 18

如果列表中包含整数作为字符串:

a = ['5', '6']
# import Decimal: from decimal import Decimal
sum(Decimal(i) for i in a)

这个问题在这里得到了解答

a = [1,2,3,4]
sum(a) 

sum(a)返回10

对一串数字求和:

sum(list_of_nums)

使用列表推导式生成一个新列表,其中相邻元素在xs中求平均值:

[(x + y) / 2 for x, y in zip(xs, xs[1:])]

将所有相邻元素求和为一个值:

sum((x + y) / 2 for x, y in zip(xs, xs[1:]))