不同列表内的元素进行排列组合,实现方法:
例: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)
与上面不同的是,迭代器生成的结果是以元组的形式展现,如下如: