简介
在数学中,一个集合的幂集是该集合所有子集的集合,包括空集和集合本身。在 Python 中,我们可以创建一个函数,该函数返回给定可迭代对象的幂集。
This tutorial is from open-source community. Access the source code
💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版
在数学中,一个集合的幂集是该集合所有子集的集合,包括空集和集合本身。在 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()
来消耗该生成器并返回一个列表。