효율적인 분할 기술을 통한 목록 분산 균형
데이터 조작 영역에서 목록을 여러 부분으로 균등하게 배포하는 기능 원하는 길이는 매우 중요합니다. 이 문제는 동시 처리를 위해 데이터를 분할하거나 항목을 관리 가능한 하위 집합으로 구성하는 경우와 같은 다양한 시나리오에서 발생합니다.
일반적으로 사용되는 접근 방식 중 하나는 목록을 지정된 크기의 청크로 나누는 Chunks() 함수입니다. 그러나 이 방법은 모든 경우에 대략 동일한 부품을 생성하는 정밀도가 부족합니다. 예를 들어, 7개 요소 목록을 2개 부분으로 분할하면 3개 요소와 4개 요소가 고르지 않게 덩어리지게 됩니다.
이 제한 사항을 해결하기 위해 보다 세련된 솔루션이 제시됩니다.
def split(a, n): k, m = divmod(len(a), n) return (a[i*k+min(i, m):(i+1)*k+min(i+1, m)] for i in range(n))
이 접근 방식은 divmod() 함수를 사용하여 크기 k의 전체 청크 수와 나머지 부분 청크 m의 요소 수를 계산합니다. 그 후 루프는 인덱스 i부터 시작하여 각 청크를 반복하고 목록을 분할하여 원하는 하위 집합을 검색합니다.
예를 들어 다음 예를 고려하세요.
>>> list(split(range(11), 3)) [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10]]
여기서 시나리오에서 목록 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]은 거의 동일한 세 부분으로 우아하게 분할되며 각 청크에는 4개 또는 3개의 요소가 포함됩니다.
이 기술을 프로그래밍 무기고에 통합하면 효율적이고 균형 잡힌 방식으로 목록을 관리할 수 있는 강력한 도구를 얻을 수 있습니다.
위 내용은 효율적인 기술을 사용하여 목록을 균형 잡힌 부분으로 어떻게 분할할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!