如何基于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 smtplib模块发送SSL/TLS安全邮件实例
Apr 08 Python
Python简单获取自身外网IP的方法
Sep 18 Python
简单了解Python中的几种函数
Nov 03 Python
Python2和Python3中urllib库中urlencode的使用注意事项
Nov 26 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
处理python中多线程与多进程中的数据共享问题
Jul 28 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
Nov 05 Python
python如何将两张图片生成为全景图片
Mar 05 Python
查看jupyter notebook每个单元格运行时间实例
Apr 22 Python
用python绘制樱花树
Oct 09 Python
在Windows下安装配置CPU版的PyTorch的方法
Apr 02 Python
python数字图像处理实现图像的形变与缩放
Jun 28 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获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
PHP使用PDO访问oracle数据库的步骤详解
2017/09/29 PHP
JavaScript 学习笔记(四)
2009/12/31 Javascript
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
一些javascript一些题目的解析
2010/12/25 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
javascript清空table表格的方法
2015/05/14 Javascript
Jquery中基本选择器用法实例详解
2015/05/18 Javascript
js实现右键菜单功能
2016/11/28 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
Vue2路由动画效果的实现代码
2017/07/10 Javascript
基于JavaScript实现百度搜索框效果
2020/06/28 Javascript
node.js实现微信JS-API封装接口的示例代码
2017/09/06 Javascript
解决微信小程序防止无法回到主页的问题
2018/09/28 Javascript
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
Node.js事件的正确使用方法
2019/04/05 Javascript
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
python里对list中的整数求平均并排序
2014/09/12 Python
Python爬取APP下载链接的实现方法
2016/09/30 Python
Python 如何提高元组的可读性
2019/08/26 Python
基于pytorch 预训练的词向量用法详解
2020/01/06 Python
scrapy redis配置文件setting参数详解
2020/11/18 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
中药专业大学生医药工作求职信
2013/10/25 职场文书
《中国的气候》教学反思
2014/02/23 职场文书
校园歌咏比赛主持词
2014/03/18 职场文书
党员四风自我剖析材料思想汇报
2014/09/13 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
MySQL如何使用使用Xtrabackup进行备份和恢复
2021/06/21 MySQL
解决mysql的int型主键自增问题
2021/07/15 MySQL