How to get all subsets of a set? (powerset)

前端 未结 28 2750
庸人自扰
庸人自扰 2020-11-22 05:18

Given a set

{0, 1, 2, 3}

How can I produce the subsets:

[set(),
 {0},
 {1},
 {2},
 {3},
 {0, 1},
 {0, 2},
 {0, 3},
 {1, 2}         


        
28条回答
  •  自闭症患者
    2020-11-22 05:38

    def get_power_set(s):
      power_set=[[]]
      for elem in s:
        # iterate over the sub sets so far
        for sub_set in power_set:
          # add a new subset consisting of the subset at hand added elem
          power_set=power_set+[list(sub_set)+[elem]]
      return power_set
    

    For example:

    get_power_set([1,2,3])
    

    yield

    [[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]
    

提交回复
热议问题