我有两个浮点输入列表:
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中解决这个问题?我知道这是一个菜鸟问题,但我无法弄清楚这一点。
答案 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