Python 多个列表元素之间的排列组合,不同列表元素之间的排列组合,构建排列组合迭代器,不同可迭代对象元素之间的排列组合,列表之间元素的组合方式

不同列表内的元素进行排列组合,实现方法:

例:list_01= ['a','b']

list_02 = ['c']

实现两个列表中(各抽一个元素)元素的排列组合,结果为:a+c,b+c两种结果。

示例:

data = [['小明','小王','小张','小红'],['患有','得了','患了'],['高血压','糖尿病','高血脂']]

实现data中各个列表之间的排列组合:

方法一,嵌套for循环实现:

data = [['小明','小王','小张','小红'],['患有','得了','患了'],['高血压','糖尿病','高血脂']]
result = [[]]

for list_pool in data:
    lis = []
    for i in result:
        for j in list_pool:
            lis.append(i+[j])
    result = lis  
print(result)

result为需要的结果:

方法二,构建排列组合迭代器:

itertools.product(*iterables, repeat=1) 用来生成 *iterables 各元素之间的不同组合。
import itertools

res = itertools.product(['小明','小王','小张','小红'], ['患有','得了','患了'], ['高血压','糖尿病','高血脂'],repeat=1)
#结果转化为列表
result = list(res)
print(result) 

 与上面不同的是,迭代器生成的结果是以元组的形式展现,如下如:

猜你喜欢

转载自blog.csdn.net/L_goodboy/article/details/124385989