我有一个数字列表,例如[1,2,3,4,5...],我想计算(1+2)/2第二个,(2+3)/2第三个, (3+4)/2等等。我怎样才能做到这一点?
[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:因此,你要(element 0 + element 1) / 2, (element 1 + element 2) / 2,,…等等。
(element 0 + element 1) / 2, (element 1 + element 2) / 2
我们列出两个列表:除第一个元素之外的每个元素中的一个,除最后一个元素之外的每个元素中的一个。然后,我们想要的平均值是从两个列表中得出的每对平均值。我们zip过去常常从两个列表中取对。
我假设即使输入值是整数,你也希望在结果中看到小数。默认情况下,Python进行整数除法:它丢弃余数。要完全划分事物,我们需要使用浮点数。幸运的是,将int除以浮点数将产生一个浮点数,因此我们仅将其2.0用作除数而不是2。
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)效果很好。
你将必须更确切地确切地写出你所写的内容以及它是如何工作的。