Python求和麻烦

发布于 2024-11-03 19:13:25 字数 407 浏览 6 评论 0原文

我有下一个问题:

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

I have next problem:

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)

In this code sum, sum all numbers, but I want to sum from first ['1', '7', 'U1'], first number, and from second ['1.5', '8', 'U1'] first number, and same for second...

so final result fill look as "matrix" :

y=
[ [2.5],                                #1+1.5=2.5
  [15]]                                 #7+8=15

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

长不大的小祸害 2024-11-10 19:13:25
>>> 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) 是一种转置矩阵的简单方法(切换行 <--> 列),这使您可以轻松地对每一行求和。

>>> 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) is a simple way to transpose the matrix (switch rows <--> columns), and this allows you to easily sum each row.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文