简介
在数学中,一个集合的幂集是该集合所有子集的集合,包括空集和集合本身。在 Python 中,我们可以创建一个函数,该函数返回给定可迭代对象的幂集。
在数学中,一个集合的幂集是该集合所有子集的集合,包括空集和集合本身。在 Python 中,我们可以创建一个函数,该函数返回给定可迭代对象的幂集。
编写一个名为 powerset(iterable) 的 Python 函数,该函数接受一个可迭代对象作为参数,并返回该可迭代对象的幂集。该函数应遵循以下步骤:
range() 和 itertools.combinations() 创建一个生成器,该生成器返回所有子集。itertools.chain.from_iterable() 和 list() 来消耗生成器并返回一个列表。from itertools import chain, combinations
def powerset(iterable):
s = list(iterable)
return list(chain.from_iterable(combinations(s, r) for r in range(len(s)+1)))
powerset([1, 2]) ## [(), (1,), (2,), (1, 2)]
在这个挑战中,你已经学会了如何创建一个 Python 函数,该函数返回给定可迭代对象的幂集。该函数使用 range() 和 itertools.combinations() 创建一个返回所有子集的生成器,并使用 itertools.chain.from_iterable() 和 list() 来消耗该生成器并返回一个列表。