Python总结麻烦

tha*_*ing 2 python matrix

我有下一个问题:

x=[['1', '7', 'U1'], ['1.5', '8', 'U1']]
y=sum(sum(float(el) for el in els[:-1]) for els in x) 

print(x)
print(y)
Run Code Online (Sandbox Code Playgroud)

在这个代码总和中,对所有数字求和,但我想首先从第一个['1','7','U1'],第一个数字和第二个['1.5','8','U1']求和数字,第二个相同......

所以最终结果填充看起来像"矩阵":

y=
[ [2.5],                                #1+1.5=2.5
  [15]]                                 #7+8=15
Run Code Online (Sandbox Code Playgroud)

int*_*jay 8

>>> x=[['1', '7', 'U1'], ['1.5', '8', 'U1']]
>>> zip(*x)
[('1', '1.5'), ('7', '8'), ('U1', 'U1')]
>>> [[sum(float(n) for n in nums)] for nums in zip(*x)[:-1]]
[[2.5], [15.0]]
Run Code Online (Sandbox Code Playgroud)

zip(*x) 是一种转换矩阵的简单方法(切换行< - >列),这使您可以轻松地对每一行求和.