Генерация мощности множества в Python

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В математике мощность множества - это множество всех подмножеств данного множества, включая пустое множество и само множество. В Python мы можем создать функцию, которая возвращает мощность заданного итерируемого объекта.

Мощность множества

Напишите функцию на Python под названием powerset(iterable), которая принимает итерируемый объект в качестве аргумента и возвращает мощность этого итерируемого объекта. Функция должна выполнять следующие шаги:

  1. Преобразовать заданное значение в список.
  2. Использовать range() и itertools.combinations() для создания генератора, который возвращает все подмножества.
  3. Использовать 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(), чтобы обработать генератор и вернуть список.