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的Flask框架中配置多个子域名的方法讲解
Jun 07 Python
Python 爬虫学习笔记之多线程爬虫
Sep 21 Python
Python实现的爬取网易动态评论操作示例
Jun 06 Python
Python切片操作深入详解
Jul 27 Python
用python脚本24小时刷浏览器的访问量方法
Dec 07 Python
PyTorch搭建多项式回归模型(三)
May 22 Python
PyQt5 对图片进行缩放的实例
Jun 18 Python
Python3操作MongoDB增册改查等方法详解
Feb 10 Python
python RSA加密的示例
Dec 09 Python
Python爬取科目四考试题库的方法实现
Mar 30 Python
教你如何使用Python Tkinter库制作记事本
Jun 10 Python
在 Python 中利用 Pool 进行多线程
Apr 24 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
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
2011/12/14 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
静态页面的值传递(三部曲)
2006/09/25 Javascript
input、button的不同type值在ajax提交表单时导致的陷阱
2009/02/24 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
js验证模型自我实现的具体方法
2013/06/21 Javascript
Node.js的环境安装配置(使用nvm方式)
2016/10/11 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
vue父子组件的数据传递示例
2017/03/07 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
2020/06/05 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
Django自定义认证方式用法示例
2017/06/23 Python
python实现复制大量文件功能
2019/08/31 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
解决pytorch-yolov3 train 报错的问题
2020/02/18 Python
python打开音乐文件的实例方法
2020/07/21 Python
Python grpc超时机制代码示例
2020/09/14 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
薇姿法国官网:Vichy法国
2021/01/28 全球购物
物流合作计划书
2014/01/10 职场文书
校运会宣传稿大全
2015/07/23 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
vue3使用vue-router的完整步骤记录
2021/06/20 Vue.js
Oracle 触发器trigger使用案例
2022/02/24 Oracle