gpt4 book ai didi

python - 每个给出不同的结果?

转载 作者:行者123 更新时间:2023-12-01 04:14:14 25 4
gpt4 key购买 nike

我尝试在 : 分隔之间添加逗号分隔值,然后乘以整个值例如,假设我的值为 1,2,3:4,5,6我想添加 1+2+3 和 4+5+6,然后乘以该值的结果,所以答案是 6 * 15 = 90

对于我的以下数据,我希望结果是 7.224 但此脚本给出 61.658886435我不知道我的脚本有什么问题'

ar = "0.212,1.231,0.112:1.001,3.212,0.002:0.002,0.0001,1.1"
x_data = ar.split(":")
x_final = 1
x_add = 0
for i in x_data:
x_each = i.split(",")
for j in x_each:
x_add = x_add + float(j)
x_final = x_add * x_final

print x_final

是否有任何可能的方法可以在不迭代循环的情况下获得结果?针对上述问题

最佳答案

这个问题也可以通过函数式的方式解决:

  1. 您必须将列表中的所有值相乘 - 这就是 functools.reduce + operator.mul 的作用

  2. 您必须对所有内部列表中的所有值求和 - 这就是 sum 的用途

示例:

In [5]: ar = "0.212,1.231,0.112:1.001,3.212,0.002:0.002,0.0001,1.1"

In [6]: import operator

In [7]: import functools

In [8]: functools.reduce(operator.mul, (sum(float(x) for x in s.split(',')) for s in ar.split(':')))
Out[8]: 7.223521582500001

关于python - 每个给出不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34522713/

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