python - 应用具有两个不同列表的公式

标签 python list python-2.7 math formula

我有两个这样的列表:

listA = [51, 988, 1336, 2067, 1857, 3160]
listB = [1, 2, 3, 4, 5, 6]

我必须在列表中应用这个公式:

n / pi * ((x*0.1)+1)**2 - pi * (x*0.1)**2

'n'是listA中的元素,'x'是listB中'n'相同索引对应的元素。

我需要将此公式应用于两个列表中的所有元素。因此,当循环第一次运行时,它需要这样做:

51/pi*((1*0.1)+1)**2 - pi *(1*0.1)**2

对于第二个,它需要这样做:

988/pi*((2*0.1)+1)**2 - pi*(2*0.1)**2

它一直重复到两个列表的末尾。

我知道我必须使用“for”循环,但我的问题是我不知道如何从第二个列表中获取元素。我正在尝试这样做:

for n in listA:
   n/pi*((......))

括号内应该是 listB 中的元素,但我不知道如何获取它们,并且它们需要与 listA 中的元素具有相同的索引。 输出应该是第三个列表,其中包含应用每个公式的结果。

我已尽力以最好的方式解释自己,但如果您不理解我的问题,请随时提出任何问题。

提前致谢。

最佳答案

我假设两个列表始终具有相同的大小,大多数 pythonic 方法是使用 lambda 和列表理解:

listA = [51, 988, 1336, 2067, 1857, 3160]
listB = [1, 2, 3, 4, 5, 6]

from math import pi

formula = lambda n,x: n / pi * ((x*0.1)+1)**2 - pi * (x*0.1)**2

res = [ formula(a,b) for a,b in zip(listA,listB) ]

>> [19.621466242038217,
 452.96994140127384,
 718.7747248407644,
 1289.7268993630569,
 1329.8678662420382,
 2575.175332484077]

关于python - 应用具有两个不同列表的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37498127/

相关文章:

java - Java 的侵入式列表实现?

javascript - 段落形式的随机列表

python - 使用 Flask 创建 RESTful API?

python - 我们是否需要 GPU 系统来训练深度学习模型?

python - 附加到数据帧引发错误 : cannot concatenate object of type '<class ' tuple'>'; only Series and DataFrame objs are valid

java - ArrayList.remove(int) 与不同线程中的 ArrayList.remove(Object)

python - 根据另一个数组重新排序

python - 为什么在 Python 中使用基于字典的字符串格式时没有引号?

python - 在Python中,字典理解中的 "if-else and for"是如何工作的

python - 相等字符串自动更新(列表对象引用)