반복 테스트를 수행할 때 중첩된 for 루프를 사용하여 다양한 매개변수 조합을 반복하면 코드가 깊게 중첩될 수 있습니다. 다행히도 이러한 중첩을 제거하거나 줄이기 위한 대체 접근 방식이 있습니다.
효과적인 방법 중 하나는 Python 표준 라이브러리의 itertools.product 함수를 활용하는 것입니다. 이 함수는 가능한 모든 조합의 평면화된 목록을 만드는 데 사용할 수 있는 여러 반복 가능한 데카르트 곱을 생성합니다.
다음 코드 조각을 고려하세요.
x1 = range(min1, max1, step1) x2 = range(min2, max2, step2) x3 = range(min3, max3, step3) for v1, v2, v3, v4, v5, v6 in itertools.product(x1, x2, x3, x4, x5, x6): do_something_with(v1, v2, v3, v4, v5, v6)
이 코드는 가능한 모든 조합을 효과적으로 생성합니다. 지정된 범위의 값을 조합하여 평면화된 목록에 저장합니다. 그런 다음 for 루프가 이 목록을 반복하여 do_something_with 함수가 개별 값에 액세스할 수 있도록 합니다.
또 다른 접근 방식은 재귀를 사용하는 것입니다. 그러나 이 방법은 각 매개변수가 고유한 범위와 증분을 갖기 때문에 이 특정한 경우에는 그렇게 간단하지 않습니다. 따라서 itertools.product를 사용하는 것이 일반적으로 구현이 더 효율적이고 간단합니다.
위 내용은 반복 테스트에서 중첩된 For 루프를 방지하는 방법: 대체 접근 방식 탐색의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!