• 技术文章 >后端开发 >Python教程

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

    不言不言2018-05-05 10:19:05原创2724
    这篇文章主要介绍了关于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实现求一个集合所有子集的示例的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Python 所有 集合
    上一篇:python判断一个集合是否为另一个集合的子集方法 下一篇:python list是否包含另一个list所有元素
    php培训_php实战培训【立即报名】-php中文网第20期

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 实例讲解Python批量修改文件名• Python实例详解pdfplumber读取PDF写入Excel• 归纳总结Python中的装饰器知识点• python中API调用的详解与示例• 手把手教你在Python使用plot()函数画图
    1/1

    PHP中文网