Python实现求一个集合所有子集的示例


Posted in Python onMay 04, 2018

方法一:回归实现

def PowerSetsRecursive(items):
  """Use recursive call to return all subsets of items, include empty set"""
  
  if len(items) == 0:
    #if the lsit is empty, return the empty list
    return [[]]
  
  subsets = []
  first_elt = items[0] #first element
  rest_list = items[1:]
  
  #Strategy:Get all subsets of rest_list; for each of those subsets, a full subset list
  #will contain both the original subset as well as a version of the sebset that contains the first_elt
  
  for partial_sebset in PowerSetsRecursive(rest_list):
    subsets.append(partial_sebset)
    next_subset = partial_sebset[:] +[first_elt]
    subsets.append(next_subset)
  return subsets
def PowerSetsRecursive2(items):
  # the power set of the empty set has one element, the empty set
  result = [[]]
  for x in items:
    result.extend([subset + [x] for subset in result])
  return result

方法二:二进制法

def PowerSetsBinary(items): 
  #generate all combination of N items 
  N = len(items) 
  #enumerate the 2**N possible combinations 
  for i in range(2**N): 
    combo = [] 
    for j in range(N): 
      #test jth bit of integer i 
      if(i >> j ) % 2 == 1: 
        combo.append(items[j]) 
    yield combo

以上这篇Python实现求一个集合所有子集的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 实现插入排序算法
Jun 05 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
Mar 13 Python
python类的方法属性与方法属性的动态绑定代码详解
Dec 27 Python
Python第三方库h5py_读取mat文件并显示值的方法
Feb 08 Python
解决python super()调用多重继承函数的问题
Jun 26 Python
在Django admin中编辑ManyToManyField的实现方法
Aug 09 Python
Django发送邮件和itsdangerous模块的配合使用解析
Aug 10 Python
Python如何使用正则表达式爬取京东商品信息
Jun 01 Python
python中加背景音乐如何操作
Jul 19 Python
DRF框架API版本管理实现方法解析
Aug 21 Python
用python 绘制茎叶图和复合饼图
Feb 26 Python
Python中np.random.randint()参数详解及用法实例
Sep 23 Python
python list是否包含另一个list所有元素的实例
May 04 #Python
Python判断两个list是否是父子集关系的实例
May 04 #Python
python判断一个集合是否为另一个集合的子集方法
May 04 #Python
python3 判断列表是一个空列表的方法
May 04 #Python
python数字图像处理实现直方图与均衡化
May 04 #Python
用python处理图片实现图像中的像素访问
May 04 #Python
用python处理图片之打开\显示\保存图像的方法
May 04 #Python
You might like
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
PHP常用的文件操作函数经典收藏
2013/04/02 PHP
php使用正则表达式获取图片url的方法
2015/01/16 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
php和html的区别点详细总结
2019/09/24 PHP
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
js获得当前系统日期时间的方法
2015/05/06 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
2016/01/13 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
jQuery实现所有验证通过方可提交的表单验证
2017/11/21 jQuery
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
2017/12/27 Javascript
mac上配置Android环境变量的方法
2018/07/08 Javascript
对angularJs中controller控制器scope父子集作用域的实例讲解
2018/10/08 Javascript
vue中使用codemirror的实例详解
2018/11/01 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
vue实现树形结构样式和功能的实例代码
2019/10/15 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
[57:22]完美世界DOTA2联赛PWL S2 FTD vs PXG 第二场 11.27
2020/12/01 DOTA
Python continue语句用法实例
2014/03/11 Python
pytorch cnn 识别手写的字实现自建图片数据
2018/05/20 Python
Django文件上传与下载(FileFlid)
2019/10/06 Python
Boston Proper官网:美国女装品牌
2017/10/30 全球购物
描述JSP和Servlet的区别、共同点、各自应用的范围
2012/10/02 面试题
优秀毕业生找工作自荐信
2014/06/23 职场文书
2014年工会工作总结
2014/11/12 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript