python - 如何打印包含单独列表总和的列表
问题描述
我正在尝试获取列表列表的总和,其中对于下面定义的列表,输出将为 [6,2,10]。
data = [[1,2,3], [2], [1, 2, 3, 4]]
output =[]
total = 0
for row in data:
for val in row[0:len(row)]:
total += val
output.append(total)
print(output)
然而,这个程序的结果是 [6, 8, 18]。任何帮助,将不胜感激。
解决方案
list 中的每个元素都是可迭代的,这一事实是sum
该任务的最佳选择。
>>> data = [[1,2,3], [2], [1, 2, 3, 4]]
>>> [sum(d) for d in data]
[6, 2, 10]
现在,如果你想知道你的问题是什么......
将累加器放在数据循环之后,并在每个行循环之后输入列表:
>>> data = [[1,2,3], [2], [1, 2, 3, 4]]
>>> output = []
>>> for row in data:
... total = 0
... for val in row[0:len(row)]:
... total += val
... output.append(total)
...
>>> output
[6, 2, 10]
推荐阅读
- tensorflow - 在 Tensor flow 2.0 中出现错误的数据用完
- python - 如何将字典插入到 sqlite 数据库?
- matplotlib - 与他人共享 matplotlib 交互式图形
- r - 有没有办法在 r 中自动重新安装包及其依赖项?
- javascript - 将 Javascript 客户端与 Node.js/express 服务器连接
- c++ - 在客户端和 MEMO 中获取 HTTP 命令
- javascript - 如何在 VS 代码编辑器中跳过结束标签 (HTML)?
- c++ - 为什么当我每 K 块只读取 1 个时文件的读取时间没有改变
- excel - 导入网页数据
- selenium - @AfterTest 注解更改为 @Test 时测试失败