如何基于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操作数据库之sqlite3打开数据库、删除、修改示例
Mar 13 Python
Python中的闭包总结
Sep 18 Python
python实现带错误处理功能的远程文件读取方法
Apr 29 Python
python实现提取百度搜索结果的方法
May 19 Python
python使用json序列化datetime类型实例解析
Feb 11 Python
Python利用pandas计算多个CSV文件数据值的实例
Apr 19 Python
使用PyInstaller将python转成可执行文件exe笔记
May 26 Python
Python使用matplotlib 画矩形的三种方式分析
Oct 31 Python
python求质数列表的例子
Nov 24 Python
python脚本第一行如何写
Aug 30 Python
如何基于Python pygame实现动画跑马灯
Nov 18 Python
Python实现简单的俄罗斯方块游戏
Sep 25 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 Mysql日期和时间函数集合
2007/11/16 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
在JavaScript中获取请求的URL参数
2010/12/22 Javascript
不同Jquery版本引发的问题解决
2013/10/14 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
2015/08/11 Javascript
详解vue 中使用 AJAX获取数据的方法
2017/01/18 Javascript
vue.js高德地图实现热点图代码实例
2019/04/18 Javascript
vue-cli配置全局sass、less变量的方法
2019/06/06 Javascript
layui动态渲染生成select的option值方法
2019/09/23 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
Vue.js中Line第三方登录api的实现代码
2020/06/29 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频
2018/12/05 DOTA
python中list常用操作实例详解
2015/06/03 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
终于搞懂了Keras中multiloss的对应关系介绍
2020/06/22 Python
HTML5本地存储之Database Storage应用介绍
2013/01/06 HTML / CSS
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
线程的基本概念、线程的基本状态以及状态之间的关系
2012/10/26 面试题
理工大学毕业生自荐信范文
2014/02/22 职场文书
《搭石》教学反思
2014/04/07 职场文书
小学生2014国庆节演讲稿:祖国在我心中
2014/09/21 职场文书
健康状况证明书
2014/11/26 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
感谢师恩主题班会
2015/08/17 职场文书
XX部保密工作制度范本
2019/08/27 职场文书
导游词之寿县报恩寺
2020/01/19 职场文书
python百行代码实现汉服圈图片爬取
2021/11/23 Python
Go微服务项目配置文件的定义和读取示例详解
2022/06/21 Golang