gpt4 book ai didi

Pythonic 计算方式

转载 作者:太空宇宙 更新时间:2023-11-04 11:00:56 24 4
gpt4 key购买 nike

我有两个 python float 列表(列表大小相同,即元素数量相同)

list1 = [20, 30, 40, 50]
list2 = [1.1, 1.3, 1.7, 1.8]

我想计算 sum(list1[i]*list2[i])/sum(list1[i])(其中 i 从 0 到 len(list1)。

这可以使用 for 循环来完成,但是有没有更好的方法(更像 pythonic 的方法,比如使用 lambda 等。)

谢谢

最佳答案

不确定更多的 Pythonic(越简单越好,对吧?)但是对于更简洁的东西,怎么样:

sum(a * b for a, b in zip(list1, list2)) / sum(list1)

这主要改编自 another answer by SilentGhost .

顺便说一句,您正在做的事情的第一部分(除法之前)称为点积。如果你安装了 numpy,你可以这样做:

from numpy import dot
dot(list1, list2) / sum(list1)

关于Pythonic 计算方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5495385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com