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

 更新时间:2018年05月04日 15:11:57   作者:tszw1007  
今天小编就为大家分享一篇Python 实现求一个集合所有子集的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

方法一:回归实现

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列表对象中元素的删除操作方法

    列表的删操作指的是在列表中删除已存在的元素,列表中的元素被删除后,后面所有的元素依次往前移动一位,挂在被删除元素的索引下,保证每一个索引都有元素,这篇文章主要介绍了Python列表对象中元素的删除操作方法,需要的朋友可以参考下
    2022-12-12
  • python matlab库简单用法讲解

    python matlab库简单用法讲解

    在本篇文章里小编给大家整理了一篇关于python matlab库简单用法讲解内容,有需要的朋友们可以学习下。
    2020-12-12
  • PyCharm 光标变成黑块的解决方式

    PyCharm 光标变成黑块的解决方式

    这篇文章主要介绍了PyCharm 光标变成黑块的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Python文本特征抽取与向量化算法学习

    Python文本特征抽取与向量化算法学习

    这篇文章主要为大家详细介绍了Python文本特征抽取与向量化算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Python模拟登录之滑块验证码的破解(实例代码)

    Python模拟登录之滑块验证码的破解(实例代码)

    这篇文章主要介绍了Python模拟登录之滑块验证码的破解(实例代码),代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • Python的collections模块中的OrderedDict有序字典

    Python的collections模块中的OrderedDict有序字典

    字典是无序的,但是collections的OrderedDict类为我们提供了一个有序的字典结构,名副其实的Ordered+Dict,下面通过两个例子来简单了解下Python的collections模块中的OrderedDict有序字典:
    2016-07-07
  • 20个常用Python运维库和模块

    20个常用Python运维库和模块

    本篇文章给大家整理了20个最常用Python运维中用到的库和模块,希望我们整理的内容对大家有所帮助。
    2018-02-02
  • 微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧

    微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧

    这篇文章主要为大家详细介绍了微信小程序跳一跳游戏,python脚本跳一跳刷高分技巧,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Python爬虫实战:分析《战狼2》豆瓣影评

    Python爬虫实战:分析《战狼2》豆瓣影评

    这篇文章主要介绍了Python爬虫实战:《战狼2》豆瓣影评分析,小编在这里使用的是python版本3.5,需要的朋友可以参考下
    2018-03-03
  • pytorch简单实现神经网络功能

    pytorch简单实现神经网络功能

    这篇文章主要介绍了pytorch简单实现神经网络,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09

最新评论