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

标签 python

我尝试在 : 分隔之间添加逗号分隔值,然后乘以整个值 例如,假设我的值为 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/

相关文章:

python - 如何使用 Python 检查文件夹的内容

python - 名称错误 : name 'argv' is not defined

python - 为什么正则表达式卡住了?

python - 如何在 CNN block 上应用 TimeDistributed 层?

python - xlsxwriter:设置第 0 列宽度时,所有其他列的宽度都会重置

python - 我想将所有 .tgz 和 .tar 文件提取到一个目录中

python - 用Sympy、python2.7求解方程组

python - 手指宽度(计算机视觉)

python - 嵌套字典到 MultiIndex pandas DataFrame(3 级)

python - 别名是否保证在 Python 中引用同一个对象?