목록 요소의 가능한 모든 조합 생성
문제는 주어진 목록에서 항목에 관계없이 가능한 모든 요소 조합을 생성해야 하기 때문에 발생합니다. 그들의 길이. 십진 정수를 반복하고 이진 필터링을 적용하는 것이 그럴듯한 해결책이지만 더 효율적인 접근 방식이 있습니다.
한 가지 방법은 itertools 모듈을 활용하는 것입니다. 가능한 모든 길이를 반복함으로써 이 접근 방식은 Combinations() 함수를 사용하여 조합을 생성합니다.
import itertools stuff = [1, 2, 3] for L in range(len(stuff) + 1): for subset in itertools.combinations(stuff, L): print(subset)
보다 간결한 대안은 일련의 Combinations() 생성기를 생성하고 이를 반복하는 것입니다.
from itertools import chain, combinations def all_subsets(ss): return chain(*map(lambda x: combinations(ss, x), range(0, len(ss)+1))) for subset in all_subsets(stuff): print(subset)
이 방법은 길이에 관계없이 목록 요소의 가능한 모든 조합을 효과적으로 생성하여 문제에 대한 포괄적인 솔루션을 제공합니다.
위 내용은 Python에서 가능한 모든 목록 요소 조합을 효율적으로 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!