如何基于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下的Mysql模块MySQLdb安装详解
Apr 09 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
Dec 04 Python
python3实现全角和半角字符转换的方法示例
Sep 21 Python
python实现图片处理和特征提取详解
Nov 13 Python
Django实现登录随机验证码的示例代码
Jun 20 Python
python爬取指定微信公众号文章
Dec 20 Python
详解Python中的内建函数,可迭代对象,迭代器
Apr 29 Python
深入浅析python3中的unicode和bytes问题
Jul 03 Python
python爬虫解决验证码的思路及示例
Aug 01 Python
如何将你的应用迁移到Python3的三个步骤
Dec 22 Python
Python直接赋值及深浅拷贝原理详解
Sep 05 Python
python 将html转换为pdf的几种方法
Dec 29 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 CodeIgniter框架的工作原理研究
2015/03/30 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
PHP children()函数讲解
2019/02/03 PHP
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
node.js WEB开发中图片验证码的实现方法
2014/06/03 Javascript
js实现iframe自动自适应高度的方法
2015/02/17 Javascript
js定义类的几种方法(推荐)
2016/06/08 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
axios中cookie跨域及相关配置示例详解
2017/12/20 Javascript
理解 JavaScript EventEmitter
2018/03/29 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
浏览器事件循环与vue nextTicket的实现
2019/04/16 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
2019/10/11 Javascript
JS实现简单移动端鼠标拖拽
2020/07/23 Javascript
Python中字典的基础知识归纳小结
2015/08/19 Python
Python常用特殊方法实例总结
2019/03/22 Python
python实现微信防撤回神器
2019/04/29 Python
python日志logging模块使用方法分析
2019/05/23 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
使用Python绘制台风轨迹图的示例代码
2020/09/21 Python
windeln官方海外旗舰店:德淘超人气母婴超市
2017/12/15 全球购物
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
保险公司演讲稿
2014/09/02 职场文书
基层党员干部四风问题整改方向和措施
2014/09/25 职场文书
婚庆答谢词
2015/01/04 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书
python如何读取.mtx文件
2021/04/22 Python
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL
Python Flask实现进度条
2022/05/11 Python