itertools.combinations()
을 사용하는 스크립트가 있는데 큰 입력 크기로 정지 된 것처럼 보입니다.Python의 시간 초과 문제 itertools.combinations()
필자는 비교적 경험이 부족한 파이썬 프로그래머이므로이 문제를 해결하는 방법을 모르겠습니다. 더 적합한 도서관이 있습니까? 또는 메서드 호출이 멈추는 이유를 디버깅 할 수 있도록 자세한 로깅을 설정하는 방법이 있습니까?
도움을 주시면 감사하겠습니다.
[편집]
def findsubsets(S,m):
return set(itertools.combinations(S, m))
for s in AllSearchTerms:
S.append(itemsize)
itemsize = itemsize + 1
for i in range (1,6):
Subset = findsubsets(S,i)
for sub in Subset:
for s in sub:
sublist.append(AllSearchTerms[s])
PComb.append(sublist)
sublist = []
itertools.combinations (..) 자체는 ** 게으른 **입니다. 그래서 ** 소비자가 출력물을 가지고 무엇을하는지에 달렸습니다 ** ... –
이전 주석에서 알 수 있듯이 결과는'itertools.combinations()'의 리턴 값으로 무엇을하는지에 달려 있습니다. 도움이 더 필요하면 결과 및 결과로 수행 한 작업을 보여주는 코드 스 니펫을 표시하십시오. [최소한의 완전하고 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve)를 참조하십시오. –
또한 조합 수는 예상보다 길어서 알고리즘이 정확할 수도 있습니다. [_huge; _] (https://en.wikipedia.org/wiki/Binomial_coefficient#Binomial_coefficients_as_polynomials) – 9000