总结一下Python中的数字列表

问题:

如果我有一个数字列表,例如[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

得到一个数字?
这对我来说不行。
请帮帮我。

回答:

问题1:所以你想要(元素0 +元素1)/ 2,(元素1 +元素2)/ 2,…等
我们做的是制作两个列表:除了第一个元素之外的每个元素之一,除了最后一个之外的每个元素之一。那么我们想要的平均值是从两个列表中获取的每一对的平均值。我们使用zip从两个列表中取出对。
编辑:我假设你想在结果中看到小数,即使你的输入值是整数。默认情况下,Python执行整数除法:它丢弃余数。要将事情全部分开,我们需要使用浮点数。幸运的是,将一个int除以浮点数将产生一个浮点数,所以我们只是使用2.0作为除数而不是2
从而:

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

问题2:
使用sum应该可以正常工作。以下作品:

a = range(10)
# [0,1,2,3,4,5,6,7,8,9]
b = sum(a)
print b
# prints 45

此外,您不需要在每个步骤中将所有内容分配给变量。 print sum(a)工作正常。
您将不得不更加具体地了解您所写的内容以及它不起作用。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: sum a list of numbers in Python

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

4 + 1 =