我有一个清单:
lst = [a,b,c,d,e...]
和数学公式:
x = b/(b/a+b/c+b/d+b/e...+1)
我事先并不知道有多少会员(号码)有名单。 如何创建与列表长度相关的公式?
示例:
lst = [12,23,45,65,78]
x = 23/(23/12+23/45+23/65+23/78+1)
答案 0 :(得分:2)
作为一项功能
def equation(l):
b = float(l[1]) # this avoids int division
return b / sum([b/i for i in l])
测试
>>> equation([1,2,3,4,5])
0.43795620437956206
>>> lst = [12,23,45,65,78]
>>> equation(lst)
5.642100849145612
答案 1 :(得分:0)
答案 2 :(得分:0)
在python 2.7中,执行此操作 -
from __future__ import division
lst = [a,b,c,d...]
if len(lst < 2):
raise(Execption)
else:
num = lst[1]
den = 0
for i in range(lst[1] + lst[2:]):
den += num/i
den+=1
print num/den
答案 3 :(得分:0)
仔细检查显示,您的公式可以简化和概括
x = b/(b/a+b/c+b/d+b/e...+1)
来
x = 1/(1/a+1/c+1/d+1/e...+1)
因此,您可以将总和重写为1/sum(1./n for n in lst)