Python中如何将两个嵌套列表按对应位置合并为一个嵌套列表
解决方案
你可以使用Python内置的zip()函数结合列表推导式实现需求,该方法简洁高效,默认适用于两个嵌套列表长度一致的场景。
实现代码
基础方案(等长列表适用)
A = [[2], [3], [4], [5], [6]] B = [[8], [9], [1], [10], [11]] C = [a + b for a, b in zip(A, B)]
兼容不等长列表的扩展方案
如果两个嵌套列表长度不一致,需要保留所有元素,可以使用itertools.zip_longest:
from itertools import zip_longest # 长度不足的位置用空列表填充 C = [a + b for a, b in zip_longest(A, B, fillvalue=[])]
结果验证
运行后输出C即可得到预期结果:[[2, 8], [3, 9], [4, 1], [5, 10], [6, 11]]
原理解释
zip(A, B)会将两个列表对应位置的元素配对,每次迭代会取出A、B中对应位置的子列表,例如第一次迭代取出[2]和[8]- 列表相加操作
a + b会将两个子列表的元素合并为一个新列表,即[2] + [8] = [2,8] - 基础方案中
zip()会以更短的列表长度为准停止配对,需要保留全部元素时改用zip_longest即可,可通过fillvalue参数自定义长度不足时的填充值。
内容的提问来源于stack exchange,提问作者czy
相关产品推荐
相关产品推荐

