如何基于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类方法__init__和__del__构造、析构过程分析
Mar 06 Python
详细解析Python中的变量的数据类型
May 13 Python
Python编程argparse入门浅析
Feb 07 Python
python实现剪切功能
Jan 23 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
python selenium 执行完毕关闭chromedriver进程示例
Nov 15 Python
python3 pathlib库Path类方法总结
Dec 26 Python
python生成任意频率正弦波方式
Feb 25 Python
pyecharts调整图例与各板块的位置间距实例
May 16 Python
TensorFlow Autodiff自动微分详解
Jul 06 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
Feb 07 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
Mar 03 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函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
PHP 实现explort() 功能的详解
2013/06/20 PHP
使用PHP curl模拟浏览器抓取网站信息
2013/10/28 PHP
php中sprintf与printf函数用法区别解析
2014/02/17 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
ExtJS Ext.MessageBox.alert()弹出对话框详解
2010/04/02 Javascript
jQuery UI的Dialog无法提交问题的解决方法
2011/01/11 Javascript
javascript使用activex控件的代码
2011/01/27 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
2012/04/15 Javascript
JavaScript(js)设置默认输入焦点(focus)
2012/12/28 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
2017/09/19 jQuery
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
[05:31]DOTA2英雄梦之声_第04期_光之守卫
2014/06/23 DOTA
python爬取网站数据保存使用的方法
2013/11/20 Python
使用Python构建Hopfield网络的教程
2015/04/14 Python
python获取外网ip地址的方法总结
2015/07/02 Python
Python中内置的日志模块logging用法详解
2016/07/12 Python
微信跳一跳python辅助脚本(总结)
2018/01/11 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
Lombok插件安装(IDEA)及配置jar包使用详解
2020/11/04 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
本科生详细的自我评价
2013/09/19 职场文书
文字自荐书范文
2014/02/10 职场文书
《李广射虎》教学反思
2014/04/27 职场文书
应届生求职信范文
2014/06/30 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
2016党校学习心得体会
2016/01/07 职场文书
某某店铺的开业庆典主持词范本
2019/11/25 职场文书