2024-04-19 00:09:02 发布
网友
我有一个数字列表,比如[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
要一个号码?
这对我不起作用。
问题2: 要对整数列表求和:
a = [2, 3, 5, 8] sum(a) # 18 # or you can do: sum(i for i in a) # 18
如果列表包含整数作为字符串:
a = ['5', '6'] # import Decimal: from decimal import Decimal sum(Decimal(i) for i in a)
问题1:所以您需要(元素0+元素1)/2,(元素1+元素2)/2。。。等等
我们列出两个列表:除第一个元素外的每个元素中的一个,除最后一个元素外的每个元素中的一个。那么我们想要的平均值是从两个列表中取出来的每对的平均值。我们使用zip从两个列表中获取对。
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应该效果不错。以下工作:
sum
a = range(10) # [0,1,2,3,4,5,6,7,8,9] b = sum(a) print b # Prints 45
此外,您不需要在过程中的每一步都将所有内容赋给变量。print sum(a)工作得很好。
print sum(a)
你必须更具体地说明你写了什么,以及它是如何不起作用的。
数字和列表:
sum(list_of_nums)
使用list comprehension计算n和n-1的一半(如果模式正确的话):
[(x + (x - 1)) / 2 for x in list_of_nums]
对相邻元素求和,例如((1+2)/2+((2+3)/2)+。。。使用reduce和lambdas
reduce(lambda x, y: (x + y) / 2, list_of_nums)
问题2: 要对整数列表求和:
如果列表包含整数作为字符串:
问题1:所以您需要(元素0+元素1)/2,(元素1+元素2)/2。。。等等
我们列出两个列表:除第一个元素外的每个元素中的一个,除最后一个元素外的每个元素中的一个。那么我们想要的平均值是从两个列表中取出来的每对的平均值。我们使用
zip
从两个列表中获取对。我假设您希望在结果中看到小数,即使您的输入值是整数。默认情况下,Python执行整数除法:丢弃剩余部分。要把事情一分为二,我们需要使用浮点数。幸运的是,用一个浮点数除以一个int将产生一个浮点数,所以我们只使用
2.0
作为除数,而不是2
。因此:
问题2:
使用
sum
应该效果不错。以下工作:此外,您不需要在过程中的每一步都将所有内容赋给变量。
print sum(a)
工作得很好。你必须更具体地说明你写了什么,以及它是如何不起作用的。
数字和列表:
使用list comprehension计算n和n-1的一半(如果模式正确的话):
对相邻元素求和,例如((1+2)/2+((2+3)/2)+。。。使用reduce和lambdas
相关问题 更多 >
编程相关推荐