我有下一个问题:
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)
在这个代码和中,对所有数字求和,但我想从第一个['1','7','U1'],第一个数字和第二个['1.5','8','U1']第一个数字求和,第二个相同。。。
因此,最终结果填充为“矩阵”:
y=
[ [2.5], #1+1.5=2.5
[15]] #7+8=15
最佳答案
>>> 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]]
zip(*x)
是一种简单的矩阵转置方法(切换行列),这允许您轻松地对每一行求和。关于python - Python总和麻烦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5824692/