列表长度与数学公式之间的关系

时间:2014-09-24 16:51:52

标签: python

我有一个清单:

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)

4 个答案:

答案 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)

sipmly你可以使用in运算符!并且不需要长度列表!

x=[list[1]/sum(([(list[1]/i) for i in list])

无论如何,您可以通过len()函数访问列表长度!

答案 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)