首页 > 解决方案 > 将列表中的所有元素插入第二个列表中子列表的特定索引 - python 2

问题描述

我有 2 个列表,对于由子列表组成的 A 列表,我想将第二个列表 B 中的所有元素插入到子列表中的特定索引中。

这两个名单是休闲的,

A=[[[a, b], [c, d], [g, h]]
   [[e, f], [g, h], [t, f]]]

B=[[d, c], [e, j]]

想要的输出看起来像这样,将 B 中的每个元素添加到 A 中的第二个位置,

A=[[[a, b], [d, c], [c, d], [g, h]],
   [[a, b], [e, j], [c, d], [g, h]],
   [[e, f], [d, c], [g, h], [t, f]],
   [[e, f], [e, j], [g, h], [t, f]]] 

因此,对于 A 中的每个子列表,B 的元素被添加到 A 中的第二个位置。我确定需要“复制”元素,因为 A 中的每个子列表都需要被复制以说明 B 中的 2 个不同元素,但我不确定如何进行编码。任何输入表示赞赏。

标签: pythonlistinsertcopy

解决方案


我希望你能欣赏我在这个单线解决方案上的半小时:

[*map(lambda a, b: (a[0], b, a[1:]), *([i for s in [*map(lambda x: (x, x), A)] for i in s], B*2))]
[(['a', 'b'], ['d', 'c'], [['c', 'd'], ['g', 'h']]),
 (['a', 'b'], ['e', 'j'], [['c', 'd'], ['g', 'h']]),
 (['e', 'f'], ['d', 'c'], [['g', 'h'], ['t', 'f']]),
 (['e', 'f'], ['e', 'j'], [['g', 'h'], ['t', 'f']])]

推荐阅读