一尘不染

对Python中的数字列表求和

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

得到一个号码?

这对我不起作用。


阅读 11936

收藏
2020-02-23

共1个答案

一尘不染

问题1:因此,你要(element 0 + element 1) / 2, (element 1 + element 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)效果很好。

你将必须更确切地确切地写出你所写的内容以及它是如何工作的。

2020-02-23