首页 > 解决方案 > 将列表的所有元素分别附加到python中另一个列表的所有元素

问题描述

我正在使用两个列表,其中都有嵌套元素,并且我想创建一个组合所有嵌套元素的最终列表。就像这两个列表一样,

A=[[["a1", "b1"]],[["a2", "b2"]]]
B=[[["a3", "b3"]],[["a4", "b4"]]]

我需要找到一种方法将列表 B 中的所有元素分别附加到列表 A 的元素中。输出将是这样的,

C=[[["a1", "b1"], ["a3", "b3"]],[["a1", "b1"], ["a4", "b4"]], [["a2", "b2"], ["a3", "b3"]],[["a2", "b2"], ["a4", "b4"]]]

这是我一直试图解决的方法,但它没有给出正确的输出。

C=[]
for i in A:
    i[1].append([i[0] for i in B])
    C.append(i)

关于如何做到这一点的任何建议都是完美的。

标签: pythonlist

解决方案


利用:

A = [[["a1", "b1"]], [["a2", "b2"]]]
B = [[["a3", "b3"]], [["a4", "b4"]]]

C = []
for ai in A:
    for bi in B:
        C.append(ai + bi)

列表理解版本:

A=[[["a1", "b1"]],[["a2", "b2"]]]
B=[[["a3", "b3"]],[["a4", "b4"]]]

C = [ai + bi for ai in A for bi in B]
print(C)

输出

 [[['a1', 'b1'], ['a3', 'b3']], [['a1', 'b1'], ['a4', 'b4']], [['a2', 'b2'], ['a3', 'b3']], [['a2', 'b2'], ['a4', 'b4']]]

作为替代使用itertools.product

from itertools import product

A=[[["a1", "b1"]],[["a2", "b2"]]]
B=[[["a3", "b3"]],[["a4", "b4"]]]

C = [ai + bi for ai, bi in product(A, B)]
print(C)

推荐阅读