python - 将列表的所有元素分别附加到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)
关于如何做到这一点的任何建议都是完美的。
解决方案
利用:
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)
推荐阅读
- c# - 假脱机由 Observable.FromEvent 生成的正在进行的项目
- r - 用R计算多个多边形之间的最小距离
- javascript - Internet Explorer 中的 Angular 无效日期错误
- python - 如何在 Python 中以异步方法上传到 Google Drive
- javascript - 如何创建一个带有反应的小部件以集成到其他反应应用程序中?
- java - 用作常量的 Java final 类在编译后保留
- batch-file - CMD 随时按键触发X
- html - Angular HTML元素:观察自身内部的元素属性
- node.js - 我们可以在 Node JS 中使用单个 PUT 请求更新多条记录吗?
- ios - 保持内存清洁并杀死 ViewController