Python如何将两个等长列表的元素两两组合生成新列表
两个等长列表元素两两组合的实现方案
需求说明
需要将两个长度相同的列表的所有元素进行两两组合,两个列表结构如下:
list1 = [(m0, m0+b), (m1, m1+b), (m2, m2+b),...] list2 = [(n0, n0+b), (n1, n1+b), (n2, n2+b),...]
期望生成的新列表结构如下:
new_list = [((m0, m0+b), (n0, n0+b)), ((m0, m0+b), (n1, n1+b)), ((m0, m0+b), (n2, n2+b)),..., ((m1, m1+b), (n0, n0+b)), ((m1, m1+b), (n1, n1+b)), ((m1, m1+b), (n2, n2+b)), ..., ((m2, m2+b), (n0, n0+b)), ((m2, m2+b), (n1, n1+b)), ((m2, m2+b), (n2, n2+b)), ...]
实现方案
直接调用Python标准库itertools中的product方法即可实现该需求,代码如下:
from itertools import product list(product(list1, list2))
输出结果完全匹配预期:
[((m0, m0+b), (n0, n0+b)), ((m0, m0+b), (n1, n1+b)), ((m0, m0+b), (n2, n2+b)), ((m1, m1+b), (n0, n0+b)), ((m1, m1+b), (n1, n1+b)), ((m1, m1+b), (n2, n2+b)), ((m2, m2+b), (n0, n0+b)), ((m2, m2+b), (n1, n1+b)), ((m2, m2+b), (n2, n2+b))]
内容的提问来源于stack exchange,提问作者huschhusch
相关产品推荐
相关产品推荐

