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 ElementTree 基本读操作示例
Apr 09 Python
Python删除windows垃圾文件的方法
Jul 14 Python
python判断字符串编码的简单实现方法(使用chardet)
Jul 01 Python
Python中的日期时间处理详解
Nov 17 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 Python
Python3.7中安装openCV库的方法
Jul 11 Python
Python二进制文件读取并转换为浮点数详解
Jun 25 Python
Python符号计算之实现函数极限的方法
Jul 15 Python
Django实现发送邮件找回密码功能
Aug 12 Python
Python selenium 自动化脚本打包成一个exe文件(推荐)
Jan 14 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 Python
python支持多继承吗
Jun 19 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.4中json_encode中文转码的变化小结
2013/01/30 PHP
CI框架给视图添加动态数据
2014/12/01 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
PHP封装返回Ajax字符串和JSON数组的方法
2017/02/17 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
onkeyup,onkeydown和onkeypress的区别介绍
2013/10/21 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
2015/04/16 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
2016/01/26 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
详解Vue SPA项目优化小记
2018/07/03 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
js制作提示框插件
2020/12/24 Javascript
详解Python的Django框架中的templates设置
2015/05/11 Python
Python的math模块中的常用数学函数整理
2016/02/04 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
使用python对excle和json互相转换的示例
2018/10/23 Python
python获取url的返回信息方法
2018/12/17 Python
Python之pymysql的使用小结
2019/07/01 Python
Python内存管理实例分析
2019/07/10 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
HTML5离线缓存Manifest是什么
2016/03/09 HTML / CSS
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
C++程序员求职信范文
2014/04/14 职场文书
小学生作文批改评语
2014/12/25 职场文书
导游词之湖州-太湖
2019/10/11 职场文书