先说需求:

需求主要就是:如下可见

不同的条件对应不同的值,我需要做的就是将所有的条件用python进行组合。

将所有看作是一个字典,每一个key对应一个情况1,情况1中还有不同的条件,例如审核状态为情况1,审核状态中还存在这已审核,未审核等。。。

代码如下:

from itertools import combinations
from functools import reducelist1 = ['已通过','未审核','已废弃','已完结','以删除']
list2 = ['话题','图文','案例','文章']
list3 = ['0分','1分','2分']dict = {'审核状态':list1,'内容类型':list2,'内容得分':list3,
}lists=[]
def suiji(num):for key in combinations(dict.keys(), num):for i in key:lists.append(dict[i])# print(lists)code = ','fn = lambda x, code=',': reduce(lambda x, y: [str(i) + code + str(j) for i in x for j in y], x)print(fn(lists, code))lists.clear()print('------------end----------')if __name__ == '__main__':suiji(2)

运行结果为:

/Users/dongyue/Desktop/code/venv/bin/python /Users/dongyue/Desktop/code/learn/筛选随机组合.py
*****列表组合情况***** [['已通过', '未审核', '已废弃', '已完结', '以删除'], ['话题', '图文', '案例', '文章']]
['已通过,话题', '已通过,图文', '已通过,案例', '已通过,文章', '未审核,话题', '未审核,图文', '未审核,案例', '未审核,文章', '已废弃,话题', '已废弃,图文', '已废弃,案例', '已废弃,文章', '已完结,话题', '已完结,图文', '已完结,案例', '已完结,文章', '以删除,话题', '以删除,图文', '以删除,案例', '以删除,文章']
------------end----------
*****列表组合情况***** [['已通过', '未审核', '已废弃', '已完结', '以删除'], ['0分', '1分', '2分']]
['已通过,0分', '已通过,1分', '已通过,2分', '未审核,0分', '未审核,1分', '未审核,2分', '已废弃,0分', '已废弃,1分', '已废弃,2分', '已完结,0分', '已完结,1分', '已完结,2分', '以删除,0分', '以删除,1分', '以删除,2分']
------------end----------
*****列表组合情况***** [['话题', '图文', '案例', '文章'], ['0分', '1分', '2分']]
['话题,0分', '话题,1分', '话题,2分', '图文,0分', '图文,1分', '图文,2分', '案例,0分', '案例,1分', '案例,2分', '文章,0分', '文章,1分', '文章,2分']
------------end----------Process finished with exit code 0
/Users/dongyue/Desktop/code/venv/bin/python /Users/dongyue/Desktop/code/learn/筛选随机组合.py
['已通过,话题', '已通过,图文', '已通过,案例', '已通过,文章', '未审核,话题', '未审核,图文', '未审核,案例', '未审核,文章', '已废弃,话题', '已废弃,图文', '已废弃,案例', '已废弃,文章', '已完结,话题', '已完结,图文', '已完结,案例', '已完结,文章', '以删除,话题', '以删除,图文', '以删除,案例', '以删除,文章']
------------end----------
['已通过,0分', '已通过,1分', '已通过,2分', '未审核,0分', '未审核,1分', '未审核,2分', '已废弃,0分', '已废弃,1分', '已废弃,2分', '已完结,0分', '已完结,1分', '已完结,2分', '以删除,0分', '以删除,1分', '以删除,2分']
------------end----------
['话题,0分', '话题,1分', '话题,2分', '图文,0分', '图文,1分', '图文,2分', '案例,0分', '案例,1分', '案例,2分', '文章,0分', '文章,1分', '文章,2分']
------------end----------Process finished with exit code 0

先将字典中的key就行2个为一组的随机组合,再将该key对应的列表中情况就行随机组合。

当其中num=3的时候,字典组合只有一种情况:

/Users/dongyue/Desktop/code/venv/bin/python /Users/dongyue/Desktop/code/learn/筛选随机组合.py
['已通过,话题,0分', '已通过,话题,1分', '已通过,话题,2分', '已通过,图文,0分', '已通过,图文,1分', '已通过,图文,2分', '已通过,案例,0分', '已通过,案例,1分', '已通过,案例,2分', '已通过,文章,0分', '已通过,文章,1分', '已通过,文章,2分', '未审核,话题,0分', '未审核,话题,1分', '未审核,话题,2分', '未审核,图文,0分', '未审核,图文,1分', '未审核,图文,2分', '未审核,案例,0分', '未审核,案例,1分', '未审核,案例,2分', '未审核,文章,0分', '未审核,文章,1分', '未审核,文章,2分', '已废弃,话题,0分', '已废弃,话题,1分', '已废弃,话题,2分', '已废弃,图文,0分', '已废弃,图文,1分', '已废弃,图文,2分', '已废弃,案例,0分', '已废弃,案例,1分', '已废弃,案例,2分', '已废弃,文章,0分', '已废弃,文章,1分', '已废弃,文章,2分', '已完结,话题,0分', '已完结,话题,1分', '已完结,话题,2分', '已完结,图文,0分', '已完结,图文,1分', '已完结,图文,2分', '已完结,案例,0分', '已完结,案例,1分', '已完结,案例,2分', '已完结,文章,0分', '已完结,文章,1分', '已完结,文章,2分', '以删除,话题,0分', '以删除,话题,1分', '以删除,话题,2分', '以删除,图文,0分', '以删除,图文,1分', '以删除,图文,2分', '以删除,案例,0分', '以删除,案例,1分', '以删除,案例,2分', '以删除,文章,0分', '以删除,文章,1分', '以删除,文章,2分']
------------end----------Process finished with exit code 0

python实现三个或三个以上列表之间元素相互组合相关推荐

  1. python中del和remove的区别_Python列表删除元素del、pop()和remove()的区别小结

    前言 在python列表的元素删除操作中, del, pop(), remove()很容易混淆, 下面对三个语句/方法作出解释 del语句 del语句可以删除任何位置处的列表元素, 若知道某元素在列表 ...

  2. python教程10-列表的基本使用、列表增加元素、列表的改查删、列表遍历

    python教程_小白入门10/2020/08/01 学习内容 文章目录 python教程_小白入门10/2020/08/01 P75 列表的基本使用 P76 列表增加元素 P77 列表的修改查询和删 ...

  3. python序列类型包括哪三种映射类型_python序列类型包括哪三种_后端开发

    python中表达式4+0.5值的数据类型为?_后端开发 python中表达式4+0.5值的数据类型为浮点型,因为4是整型,0.5是浮点型,在python中规定整型和浮点型相加,结果是浮点型,这是为了 ...

  4. python组合类型有哪三种_Python基础语法三组合数据类型

    一.列表(Lists) 列表属于Python中的序列类型,它是任意对象的有序集合,通过 " 位置 "或者 " 索引 " 访问其中的元素,它具有可变对象.可变长度 ...

  5. pytest测试框架_聊聊 Python 的单元测试框架(三):最火的 pytest

    本文首发于 HelloGitHub 公众号,并发表于 Prodesire 博客. 一.介绍 本篇文章是<聊聊 Python 的单元测试框架>的第三篇,前两篇分别介绍了标准库 unittes ...

  6. python基础教程第三版怎么样-Python基础教程(第三版)(七)再谈抽象

    菜鸡的学习笔记. 7.1 对象魔法 多态:可对不同类型的对象执行相同的操作,但是操作将随对象所属的类型而异: 封装:对外隐藏对象内部工作原理的细节: 继承:可基于通用类创建出专用类. 按作者的意思,多 ...

  7. python序列类型-python序列类型包括哪三种

    python序列类型包括哪三种 python序列类型包括:列表.元组.字典 列表:有序可变序列 创建:userlist = [1,2,3,4,5,6] 修改:userlist[5] = 999 添加: ...

  8. python下载方法-python实现下载文件的三种方法_python

    本篇文章主要介绍了python实现下载文件的三种方法,最常用的方法就是通过Http利用urllib或者urllib2模块还有requests,有兴趣的可以了解一下. Python开发中时长遇到要下载文 ...

  9. python下载的文件放在哪里的-python实现下载文件的三种方法

    Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法 ...

  10. Python基础知识(第三天)

    33.可变字符串 可变字符串 在 Python 中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,智能创建新的字符串对象.但是,经常我们确实需要原地修改字符串,可以使用 io.Strin ...

最新文章

  1. 最大输入hdu 2534 规律水题 求任意个a,b的和 不能表示的最大的数
  2. 网页拉起QQ进行交谈
  3. 可视化运行Python的神器Jupyter Notebook
  4. 修改Visual Studio类模板注释信息
  5. chrome调试本地项目, 引用本地javascript文件
  6. 高响应比优先调度算法 (HRRN)例题
  7. JavaScript:画廊案例
  8. IDEA控制台乱码终极解决方案
  9. Python实现按照指定要求逆序输出一个数字的方法
  10. python余弦定理_基于Python计算气弹簧选型
  11. DDR3之带宽、位宽和频率使用(MIGIP核里面的时钟结构)
  12. 大一计算机课如何做表格,电脑做表格的基本操作教程
  13. vue开发企业微信应用-开发必读
  14. 手写简易版链表及原理分析
  15. 深度学习第一篇论文——半监督学习Mean Teacher 的学习
  16. Pylint同时屏蔽多个报错信息
  17. 【Java集合】List接口常用方法及实现子类
  18. vue mysql 电商,Vue电商项目
  19. “WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
  20. hbase批量入库的总结

热门文章

  1. 机器学习笔记【一】- 线性回归(末):统计学推导以及局部加权线性回归算法实例
  2. tensorflow学习笔记(5)卷积神经网络(CNN)
  3. particle filtering---粒子滤波(讲的很通俗易懂)
  4. [Swift]LeetCode609. 在系统中查找重复文件 | Find Duplicate File in System
  5. [51单片机] 串口通讯 简单通信
  6. 云计算之路-阿里云上:2014年6月12日12点IIS请求到达量突降
  7. jQuery之筛选函数
  8. 【转】恢复默认vs2005
  9. 通过标签向flash传递参数
  10. 移动硬盘“脱机”(签名冲突)的硬盘如何正常使用