如何按索引映射合并两个嵌套列表,生成同索引元素配对的新嵌套列表
按索引配对合并嵌套列表实现
需求说明
需要将两个嵌套列表按索引位置映射合并,相同索引的元素两两配对组成新的子项,最终保持原索引顺序生成新的嵌套列表。
待合并列表:
- 列表A:
[[1,1],[1,2],[1,3]] - 列表B:
[[2,1],[2,2],[2,3]]
预期输出:
[ [[1,1],[2,1]], [[1,2],[2,2]], [[1,3],[2,3]] ]
实现方法
方法1:zip推导式写法(推荐)
直接用Python内置的zip按位并行遍历两个列表,配合列表推导式一次性生成结果,代码最简洁:
list_a = [[1,1],[1,2],[1,3]] list_b = [[2,1],[2,2],[2,3]] res = [[a, b] for a, b in zip(list_a, list_b)]
如果两个列表长度不一致,zip默认会以较短的列表长度为准截断结果;如果需要保留长列表的所有元素,缺失位置填充默认值,可以替换为itertools.zip_longest实现。
方法2:索引遍历写法
如果需要更直白的逐位取数逻辑,可以直接遍历索引位,依次取两个列表对应位置的元素拼接:
list_a = [[1,1],[1,2],[1,3]] list_b = [[2,1],[2,2],[2,3]] res = [] for idx in range(len(list_a)): res.append([list_a[idx], list_b[idx]])
两种写法运行后都能得到符合要求的结果。
内容的提问来源于stack exchange,提问作者KT.Thompson
相关产品推荐
相关产品推荐

