shiyimiao
2020-08-31 18:55
采纳率: 66.7%
浏览 1.0k

python 从两个列表中分别随机选取元素组成新的列表?

求:完整Python代码
1、从1-10中随机抽取3个数,按从小到大排列
2、从1-6中随机抽取2个数,按从小到大排序
3、将抽取的1、2中元组再两两组合
4、输出所有、所有、所有可能组合
例如:1 2 3 1 2
1 2 3 1 3
1 2 3 1 4
1 2 3 1 5
1 2 3 1 6
1 2 3 2 3
1 2 3 2 4
1 2 3 2 5
1 2 3 2 6
1 2 3 3 4
1 2 3 3 5
1 2 3 3 6
1 2 4 1 2
1 2 5 3 4
等等 全部可能!

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • threenewbee 2020-08-31 19:49
    import random
    a = list(random.sample(range(1,10),3))
    b = list(random.sample(range(1,6),2))
    a.sort()
    b.sort()
    result = a + b
    print(result)
    
    打赏 评论
  • 代码的灵魂是bug! 2020-09-01 09:37

    借用上一位老哥的代码,你在他代码上再加上itertools模块就可以实现了,代码如下:

    import random
    #导入itertools模块
    import itertools
    
    a = list(random.sample(range(1,10),3))
    b = list(random.sample(range(1,6),2))
    a.sort()
    b.sort()
    result = a + b
    print(result)
    print('--------------------------')
    print('新的随机组合')
    #这个是有序排列
    print(list(itertools.permutations(result,5)))
    
    #这个是无需排列
    print(list(itertools.combinations(result,5)))
    
    

    具体可以是百度一下itertools的用法

    打赏 评论

相关推荐 更多相似问题