在 Python 中求和一个数字列表

新手上路,请多包涵

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

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

我如何计算他们的总和:

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

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

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

原文由 layo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 691
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 进行整数除法:它丢弃余数。一路划分事物,需要用到浮点数。幸运的是,一个整数除以一个浮点数会产生一个浮点数,所以我们只使用 2.0 作为除数而不是 2

因此:

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

原文由 Karl Knechtel 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏