使用带有公式的多个列表

时间:2014-03-11 02:16:31

标签: python list

我有两个浮点输入列表:

   w = [3.11, 4.2, 5.66, 6]
   h = [1.1, 2.33, 3.222, 4.23]

我想在相同的数学公式中使用它们,对于每次计算,它从列表中的相同索引获取值:

   r = (h/2) + ((w^2) / (8*h))

所以第一对变量的公式如下:

   r = (1.1/2) + ((3.11^2) / (8*1.1))

完成后我想创建一个结果列表并将其附加到输出变量r

我将如何在Python中解决这个问题?我知道这是一个菜鸟问题,但我无法弄清楚这一点。

2 个答案:

答案 0 :(得分:2)

您可以使用内置map功能,例如

w, h = [3.11, 4.2, 5.66, 6], [1.1, 2.33, 3.222, 4.23]

def formula(w, h):
    return (h/2.0) + ((w**2) / (8.0*h))

print map(formula, w, h)
# [1.6491022727272726, 2.1113519313304723, 2.853846058348852, 3.1788297872340427]

列表理解和zip也可以这样做,就像这个

一样
print [(h/2.0) + ((w**2) / (8.0*h)) for w, h in zip(w, h)]
# [1.6491022727272726, 2.1113519313304723, 2.853846058348852, 3.1788297872340427]

答案 1 :(得分:0)

Stackoverflow更多的是修复错误而不是制作代码,但这里就是

def formulax(list1,list2):
  listOfOutputs = []
  i = 0
  while(i<=len(list1)) and i<=len(list2)):
    r = (list1[i]/2) + ((list2[i]^2) / (8*list1[i]))  
    listOfOutputs.append(r)
  return listOfOutputs