给定一个数字列表,例如:
[1, 2, 3, 4, 5, ...]
我如何计算它们的总和:
1 + 2 + 3 + 4 + 5 + ...
我如何计算它们的成对平均值:
[(1+2)/2, (2+3)/2, (3+4)/2, (4+5)/2, ...]
问题一:
要对数字列表求和,请使用sum https://docs.python.org/3/library/functions.html#sum:
xs = [1, 2, 3, 4, 5]
print(sum(xs))
这输出:
15
问题2:
所以你想要 (元素 0 + 元素 1) / 2, (元素 1 + 元素 2) / 2, ... 等等。
我们创建两个列表:一个列表包含除第一个元素之外的每个元素,另一个列表包含除最后一个元素之外的每个元素。那么我们想要的平均值是从两个列表中取出的每对的平均值。我们用zip
从两个列表中获取对。
我假设您希望在结果中看到小数,即使您的输入值是整数。默认情况下,Python 进行整数除法:它会丢弃余数。为了把事情全部分开,我们需要使用浮点数。幸运的是,int 除以 float 会产生 float,所以我们只需使用2.0
为我们的除数而不是2
.
Thus:
averages = [(x + y) / 2.0 for (x, y) in zip(my_list[:-1], my_list[1:])]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)