콘텐츠로 건너뛰기
Home » yield from

yield from

같은 것을 포함하는 순열 생성기

주어진 원소로 가능한 순열/조합을 생성하는 기능은 표준 라이브러리 내 itertools 모듈을 통해 사용할 수 있다. (참고로 단순히 순열 조합을 생성하는 방법은 의외로 간단해서 직접 구현해서 사용해도 된다.) 그런데 가끔 볼 수 있는 문제 중에는 같은 원소가 여러 개 있을 때의 순열을 구하는 문제가 있다. 이 문제는 한 개씩 있는 원소를 중복해서 순열/조합을 만드는 중복순열, 중복조합과는 달리 사용가능한 원소가 중복은 되지만 그 개수에 제한이 있다는 것이다. 흔히 “같은 것을 포함하는 순열”이라고 하던데, 오늘은 이처럼 같은 원소를 여러 개 포함하는 순열을 만드는 방법에 대해서 알아보자.

더 보기 »같은 것을 포함하는 순열 생성기

파이썬 yield from – 다른 제너레이터에게 위임하기

파이썬에서는 어떤 함수 내부에 yield 키워드가 사용됐다면, 이 함수를 무조건 제너레이터 함수로 본다. 제너레이터 함수는 제너레이터를 만드는 함수이고, 다시 제너레이터는 어떤 값을 필요한 만큼 반복적으로 만들어내는 객체이다. 제너레이터는 일반 함수와 비슷하게 생겼지만, 함수가 return 구문을 만나면 실행이 끝나버리는데 비해, 제너레이터는 yield 구문에서 값을 외부로 내보낸 후 “일시정지” 상태가 되었다가 필요할 때 다시 실행 흐름을 이어나갈 수 있다. 필요에 따라서는 일시 정지한 제너레이터를 다시 깨울 때 값을 내부로 전달할 수 있는데, 이런 특징을 활용하면 함수를 띄워놓고 필요한 시점에 반복적으로 값을 집어넣었다가… 더 보기 »파이썬 yield from – 다른 제너레이터에게 위임하기