python - 添加 2 个不同长度的列表列表

标签 python python-3.x list

我有 2 个列表。 列表 1(比如 X)是 =

[ 0 , 0 , 0 , 0 ]

列表 2 是列表的列表(假设为 Y),其行大小始终为 4 的倍数,但行大小可能不同。

例如 -

[[1,2,3,4,5,6,7,8] , [1,2,3,4]]

我想找到 4 组元素的按列总和

因此对于此示例,总和将为 [2,4,6,8] [5,6,7,8]

目前,我正在使用 X = [sum(e) for e in zip(X , Y[j][count:count+4])]

对于一次完整的列遍历,计数是固定的。所以假设 Y 中的列数是 200。因此对于 4 个数字组的每次遍历,计数将保持不变(它用于对矩阵进行切片)

但是一旦最后 4 个元素的行长度发生变化,X 就会变为空。 一旦 Y 完全按列遍历,计数就会增加。

请询问更多详情。如果需要,我还可以以包含矩阵和我当前使用的代码的文本文件的形式提供一个最小的可重现示例。

最佳答案

不完全确定您的问题中的所有内容是如何组合在一起的,但是对于“不同长度的压缩列表”问题,您可以使用 itertools.zip_longest使用 fillvalue=0。然后,您可以在第二步中将得到的总和列表分割为多个 block 。

>>> lsts = [[1,2,3,4,5,6,7,8] , [1,2,3,4]]                                 
>>> from itertools import zip_longest                                      
>>> sums = [sum(x) for x in zip_longest(*lsts, fillvalue=0)]               
>>> [sums[i:i+4] for i in range(0, len(sums), 4)]                          
[[2, 4, 6, 8], [5, 6, 7, 8]]

关于python - 添加 2 个不同长度的列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57071276/

相关文章:

python - NumPy 中的 "scalar"是什么?

Python MySQL 在 Mac OS X 10.6 i386 上安装错误

python - 如何在企业网络内部署Python应用程序

python - Mongoengine 中的 "QuerySet"对象到底是什么?

list - SwiftUI - 我想删除 "back button"和 .navigationbartitle 之间的空格

Python:在不同的命名空间中动态导入模块

python - Celery Django 没有注册任务,在 shell 中找不到模块错误

python-3.x - 使用带有 session 的 Python 请求登录网站

python - Tic Tac Toe – 输出打印额外的一行

list - lisp "list"函数/关键字有什么作用?