如何基于python生成list的所有的子集


Posted in Python onNovember 11, 2019

这篇文章主要介绍了如何基于python生成list的所有的子集,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

不使用递归且不引入标准库,单纯用两个for循环即可得出一个list的所有子集

L = [1, 2, 3, 4]

List = [[]]
for i in range(len(L)):     # 定长
  for j in range(len(List)): # 变长
    sub_List = List[j] + [L[i]]
    if sub_List not in L:
      List.append(sub_List)
print('List =', List)

主要思想:

变长的 List 中的所有元素将会被不断地重复遍历,直到遍历完定长的 L

当然,不进行条件判断也行:

L = [1, 2, 3, 1]
List = [[]]
for i in range(len(L)):     # 定长
  for j in range(len(List)): # 变长
      List.append(List[j] + [L[i]])

print('List =', List)

最后,如果考虑到程序的效率问题,那么建议引入 python 标准库中的 itertools,然后调用 combinations 这个函数

这样可以更加高效地得到一个 list 的所有的子集

代码如下:

from itertools import combinations
L = [1, 2, 3, 1]
result_list = sum([list(map(list, combinations(L, i))) for i in range(len(L) + 1)], [])
print('result_list =', result_list)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python抓取某汽车网数据解析html存入excel示例
Dec 04 Python
python用字典统计单词或汉字词个数示例
Apr 22 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
Apr 24 Python
pandas pivot_table() 按日期分多列数据的方法
Nov 16 Python
对python函数签名的方法详解
Jan 22 Python
Python 实现输入任意多个数,并计算其平均值的例子
Jul 16 Python
Python运行DLL文件的方法
Jan 17 Python
Django Haystack 全文检索与关键词高亮的实现
Feb 17 Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 Python
keras做CNN的训练误差loss的下降操作
Jun 22 Python
python在linux环境下安装skimage的示例代码
Oct 14 Python
详解python的xlwings库读写excel操作总结
Feb 26 Python
使用django和vue进行数据交互的方法步骤
Nov 11 #Python
如何使用python进行pdf文件分割
Nov 11 #Python
python实发邮件实例详解
Nov 11 #Python
Python 中 -m 的典型用法、原理解析与发展演变
Nov 11 #Python
原来我一直安装 Python 库的姿势都不对呀
Nov 11 #Python
Python帮你识破双11的套路
Nov 11 #Python
如何基于Python批量下载音乐
Nov 11 #Python
You might like
php中ftp_chdir与ftp_cdup函数用法
2014/11/18 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
深入理解JavaScript系列(50):Function模式(下篇)
2015/03/04 Javascript
JS实现购物车特效
2017/02/02 Javascript
微信小程序 开发MAP(地图)实例详解
2017/06/27 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
VUE兄弟组件传值操作实例分析
2019/10/26 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
vue实践---vue不依赖外部资源实现简单多语操作
2020/09/21 Javascript
Python实现一个简单的验证码程序
2017/11/03 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
flask中过滤器的使用详解
2018/08/01 Python
使用Python实现租车计费系统的两种方法
2018/09/29 Python
python读取图片任意范围区域
2019/01/23 Python
pyQT5 实现窗体之间传值的示例
2019/06/20 Python
Pytorch: 自定义网络层实例
2020/01/07 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
2013/10/10 HTML / CSS
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
使用Vue.js和MJML创建响应式电子邮件
2021/03/23 Vue.js
关于毕业的广播稿
2014/01/10 职场文书
求职信需要的五点内容
2014/02/01 职场文书
财产公证书样本
2014/04/04 职场文书
护士医德医风自我评价
2014/09/15 职场文书
专家推荐信怎么写
2015/03/25 职场文书
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js