所以我得到了以下列表:
cd = [[0.1,0.2,0.1,0.9], [0.2, 0.3, 0.4, 0.1],[0.2,0.3,0.1,0.5]
我想以列表格式获取嵌套列表的各个元素的乘积...
所以我打算:
p = [(0.1*0.2*0.2),(0.2*0.3*0.3),(0.1*0.4*0.1),(0.9*0.1*0.5)]
请注意,这不是 cd 和 p 之间的一对一关系。
我想简单地做...
例如,在 F# 中,我只执行 list.fold,并使用列表作为我的累加器。是否有 python 等效项,或者我必须这样做:
p = [cd[0]]
if len(cd) > 1:
for i in range(len(cd) - 1):
for j in range(len(p)):
p[j] = p[j]*cd[i+1][j]
return p
请您参考如下方法:
你可以这样做:
[reduce(lambda a, b: a*b, x) for x in zip(*cd)]
这应该适用于多个列表,并且不需要任何导入。
正如@DSM 提到的,您还必须“导入 functools”并为 python3 使用“functools.reduce”。
