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


本文摘自php中文网,作者不言,侵删。

这篇文章主要介绍了关于Python实现求一个集合所有子集的示例,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

方法一:回归实现

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

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

1

2

3

4

5

6

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

方法二:二进制法

1

2

3

4

5

6

7

8

9

10

11

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实现求一个集合所有子集的示例的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

r语言和Python有必要都学吗

详解Python中startswith()函数与endswith函数的使用方法

Python如何清除html文件中的内容

Python中的栈指的是什么

Python的变量和变量之间如何实现乘法运算

Python中reload用法实例

Python中怎么定义一个类

学习使用Python的statsmodels模块拟合arima模型

Python上手快吗

Python2和3哪个更常用

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...