组合

组合

老师好,我想把这个列表里面的东西组合起来,应该怎么写呢?

list3 = [['101111'], ['000101'], ['010011'], ['000000', '111011'], ['011000'],
         ['000101', '001011'], ['000110', '001010', '100010'], ['110001']]

最后共有12种不同的组合

比如:

101111000101010011000000000101000110

101111000101010011000000000101001010

101111000101010011000000000101100010

101111000101010011111011001011100010

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕凡 2022-04-09 10:12:59

同学,你好!

以上列表组合的规则是什么?祝学习愉快~

  • 提问者 渊鱼sky #1

    第一个1种情况,第二个1种情况,第三个1种情况,第四个有两种情况:000000,111011,  第五个一种情况,第六个小列表有2种情况,第七个小列表有3种情况,第八个小列表一种情况。

    一共8个小列表,每个小列表中每个元素6比特,每次组合得到的长度是48比特

    一共:1*1*1*2*1*2*3*1= 12种情况

    2022-04-09 10:18:09
  • 提问者 渊鱼sky #2

    例如:第一种组合是:101111000101010011000000011000000101000110110001

    就是每次每个内层列表里的元素选一个,如果内层列表里面只有1个元素,那么每次这个元素必选,如果内层列表有2个元素,那么就有两种情况,可以选第一个元素,也可以选第二个元素


    2022-04-09 10:22:08
  • 好帮手慕凡 回复 提问者 渊鱼sky #3

    同学,你好!

    以上算法有一定难度,同学需要先往后学习,再去做这一类题目,代码参考如下:

    import numpy as np
    import random
    
    def perm_attempt():
    
        meta_seq = [['101111'], ['000101'], ['010011'], ['000000', '111011'], ['011000'],
             ['000101', '001011'], ['000110', '001010', '100010'], ['110001']]
        iter_count = np.prod([len(set(x)) for x in meta_seq])
        set_l = set()
        for _ in range(iter_count*10):
            l = [np.random.choice(x) for x in meta_seq]
            set_l.add(tuple(l))
        print(len(set_l))
        print(set_l)
    perm_attempt()

    祝学习愉快~

    2022-04-09 11:33:38
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师