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) 

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

医学小达人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值