Python 멱집합 생성

Beginner

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

소개

수학에서 집합의 멱집합 (power set) 은 공집합과 자기 자신을 포함하여 주어진 집합의 모든 부분집합의 집합입니다. Python 에서는 주어진 iterable 의 멱집합을 반환하는 함수를 만들 수 있습니다.

멱집합 (Powerset)

powerset(iterable)라는 Python 함수를 작성하세요. 이 함수는 iterable 을 인수로 받아 해당 iterable 의 멱집합을 반환합니다. 이 함수는 다음 단계를 따라야 합니다.

  1. 주어진 값을 리스트로 변환합니다.
  2. range()itertools.combinations()를 사용하여 모든 부분집합을 반환하는 제너레이터 (generator) 를 생성합니다.
  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)]

요약

이 챌린지에서 주어진 iterable 의 멱집합을 반환하는 Python 함수를 만드는 방법을 배웠습니다. 이 함수는 range()itertools.combinations()를 사용하여 모든 부분집합을 반환하는 제너레이터를 생성하고, itertools.chain.from_iterable()list()를 사용하여 제너레이터를 소비하고 리스트를 반환합니다.