【问题标题】:Matrix problem Python矩阵问题 Python
【发布时间】:2011-04-25 17:50:31
【问题描述】:

例如,如果我有矩阵:

x=[['1', '7', 'U1'], ['1.5', '8', 'U1'], ['2', '5.5', 'U2']]

我如何从 x 中获取所有数据,除了最后一个。然后我需要总结这些元素。


这就是我需要的:sum=1+7+1.5+8+2+5.5= ??

谢谢



编辑2:


我试试:

> x=[['1', '7', 'U1'], ['1.5', '8',
> 'U1'], ['2', '5.5', 'U2']]
> 
> sum(sum(el[:-1]) for el in x)

但收到错误:

回溯(最近一次通话最后一次):
文件“xxx.py”,第 3 行,在 sum(sum(el[:-1]) for el in x) 文件“xxx.py”,第 3 行,in sum(sum(el[:-1]) for el in x) TypeError: 不支持的操作数类型 对于 +: 'int' 和 'str'

【问题讨论】:

    标签: python sum


    【解决方案1】:

    您可以使用[:-1] 索引除最后一个以外的所有元素。

    要获得这笔款项,请尝试sum(sum(float(el) for el in els[:-1]) for els in x)

    如果列表中确实有字符串,则可能需要转换元素。此外,如果总是有 3 个元素,这可能会更快一些:

    sum(float(a) + float(b) for a,b,_ in x) 
    

    【讨论】:

    • 嗯,我收到错误,请查看 EDIT 2;并不总是有 3 个元素是随机数据,所以随机“输入”...
    • 第一个示例没有使用强制转换。我更新了它以将值更改为浮点数。
    • 也许你知道我怎样才能得到这个数组的长度。我知道它是这样的 len(x);但这是针对数组的。它必须计算除 x“矩阵”的最后一个之外的所有元素。所以在我的情况下,结果必须是 6。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多