在Python中对数字列表求和

22 浏览
0 Comments

在Python中对数字列表求和

这个问题已经有答案了:

如何在python中将列表中的整数相加(总和列表中的数字)?

如何迭代来自列表的重叠(当前,下一个)值对?

给定如下的数字列表:

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

如何计算它们的总和:

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

如何计算它们的成对平均值:

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

admin 更改状态以发布 2023年5月22日
0
0 Comments

求一个数字列表的总和:

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:]))

0
0 Comments
问题1:

要对数字列表求和,可以使用sum函数:

xs = [1, 2, 3, 4, 5]
print(sum(xs))

这将输出:

15


问题2:

所以,您想要(element 0 + element 1) / 2, (element 1 + element 2) / 2, ...等等。

我们创建两个列表:一个包含除第一个元素以外的所有元素,另一个包含除最后一个元素以外的所有元素。然后,我们要求的平均数是来自这两个列表中每个对的平均数。我们使用zip从两个列表中取出一对。

我假设您希望在结果中看到小数,即使您的输入值是整数。默认情况下,Python会执行整数除法:它会丢弃余数。要全部除以,我们需要使用浮点数。幸运的是,将int除以float将产生float,因此我们只需使用2.0作为我们的除数,而不是2

因此:

averages = [(x + y) / 2.0 for (x, y) in zip(my_list[:-1], my_list[1:])]

0